You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Borut Bolčina <bo...@gmail.com> on 2009/05/19 13:39:07 UTC

Changing logging level at runtime

Hi,

I've been using log4j's configureAndWatch in some of my backend java apps. I
want to be able to change log4j.properties for my T5.0.18 web app and see
the change (log level) in my logs without restarting Tomcat.

My goal is to switch to debug level when I see "fishy behaviur" in the
production deployed apps.

How to achive this in best practice?

-Borut

Re: Changing logging level at runtime

Posted by Borut Bolčina <bo...@gmail.com>.
Tomcat

2009/5/19 Joachim Van der Auwera <jo...@progs.be>

> use JBoss?
>
>
> Borut Bolčina wrote:
>
>> Hi,
>>
>> I've been using log4j's configureAndWatch in some of my backend java apps.
>> I
>> want to be able to change log4j.properties for my T5.0.18 web app and see
>> the change (log level) in my logs without restarting Tomcat.
>>
>> My goal is to switch to debug level when I see "fishy behaviur" in the
>> production deployed apps.
>>
>> How to achive this in best practice?
>>
>> -Borut
>>
>>
>>
>
>
> --
> Joachim Van der Auwera
> PROGS bvba, progs.be
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Changing logging level at runtime

Posted by Joachim Van der Auwera <jo...@progs.be>.
use JBoss?

Borut Bolčina wrote:
> Hi,
>
> I've been using log4j's configureAndWatch in some of my backend java apps. I
> want to be able to change log4j.properties for my T5.0.18 web app and see
> the change (log level) in my logs without restarting Tomcat.
>
> My goal is to switch to debug level when I see "fishy behaviur" in the
> production deployed apps.
>
> How to achive this in best practice?
>
> -Borut
>
>   


-- 
Joachim Van der Auwera
PROGS bvba, progs.be


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Changing logging level at runtime

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
On Tue, May 19, 2009 at 10:18 AM, Borut Bolčina <bo...@gmail.com> wrote:
> I am sure Tapestry offers simpler solution (configuring some service) or at
> least offers the infrastructure to implement behind the scenes periodic
> reading of the log4j configuration.
> Does it?

No. Tapestry doesn't even depends on log4j, depending on SL4J instead.

-- 
Thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Changing logging level at runtime

Posted by Borut Bolčina <bo...@gmail.com>.
I am sure Tapestry offers simpler solution (configuring some service) or at
least offers the infrastructure to implement behind the scenes periodic
reading of the log4j configuration.

Does it?

2009/5/19 Alex Shneyderman <a....@gmail.com>

> On Tue, May 19, 2009 at 2:33 PM, Borut Bolčina <bo...@gmail.com>
> wrote:
> > Actually we do have this web app in cluster.
>
> in this case you will have to find out how to propagate level changes
> to all the instances
> of the cluster.
>
> > Are you saying that I should run this simple standalone java app to
> change
> > the log level of the web app?
>
> you could only if you share the class-loader with the app that you
> want to see the
> log levels adjusted - I believe this is default behavior in JBoss.
> Most likely though
> it will be simpler to simply embed the code into an existing application.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Changing logging level at runtime

Posted by Alex Shneyderman <a....@gmail.com>.
On Tue, May 19, 2009 at 2:33 PM, Borut Bolčina <bo...@gmail.com> wrote:
> Actually we do have this web app in cluster.

in this case you will have to find out how to propagate level changes
to all the instances
of the cluster.

> Are you saying that I should run this simple standalone java app to change
> the log level of the web app?

you could only if you share the class-loader with the app that you
want to see the
log levels adjusted - I believe this is default behavior in JBoss.
Most likely though
it will be simpler to simply embed the code into an existing application.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Changing logging level at runtime

Posted by Borut Bolčina <bo...@gmail.com>.
Actually we do have this web app in cluster.

Are you saying that I should run this simple standalone java app to change
the log level of the web app?

-Borut

2009/5/19 Alex Shneyderman <a....@gmail.com>

> Write a little app to adjust debug levels on the fly. The basics of log4j
> are:
>
> Logger lg = Logger.getLogger( "org.qi4j" );
> lg.setLevel( Level.INFO );
>
> 2 things to watch out for:
>
> 1. Clusters.
> 2. Classes are available in JVM only when loaded. So you will need a
> listing of them before you deploy the app. I do this @ build time.
>
> - Alex
>
> PS: I wish I could publish this app ... but I can not. The basic ideas
> are above.
>
> On Tue, May 19, 2009 at 1:39 PM, Borut Bolčina <bo...@gmail.com>
> wrote:
> > Hi,
> >
> > I've been using log4j's configureAndWatch in some of my backend java
> apps. I
> > want to be able to change log4j.properties for my T5.0.18 web app and see
> > the change (log level) in my logs without restarting Tomcat.
> >
> > My goal is to switch to debug level when I see "fishy behaviur" in the
> > production deployed apps.
> >
> > How to achive this in best practice?
> >
> > -Borut
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Changing logging level at runtime

Posted by Alex Shneyderman <a....@gmail.com>.
Write a little app to adjust debug levels on the fly. The basics of log4j are:

Logger lg = Logger.getLogger( "org.qi4j" );
lg.setLevel( Level.INFO );

2 things to watch out for:

1. Clusters.
2. Classes are available in JVM only when loaded. So you will need a
listing of them before you deploy the app. I do this @ build time.

- Alex

PS: I wish I could publish this app ... but I can not. The basic ideas
are above.

On Tue, May 19, 2009 at 1:39 PM, Borut Bolčina <bo...@gmail.com> wrote:
> Hi,
>
> I've been using log4j's configureAndWatch in some of my backend java apps. I
> want to be able to change log4j.properties for my T5.0.18 web app and see
> the change (log level) in my logs without restarting Tomcat.
>
> My goal is to switch to debug level when I see "fishy behaviur" in the
> production deployed apps.
>
> How to achive this in best practice?
>
> -Borut
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Changing logging level at runtime

Posted by Paul Field <pa...@db.com>.
Just some random ideas you could explore...

It is possible to expose Log4J via JMX.

Hivemind (Tapestry 4) used to do this with a simple piece of configuration 
(http://hivemind.apache.org/hivemind1/hivemind-jmx/manageLog4j.html).

A bit of Googling shows how you can do Log4J level changes with a simple 
JMX bean and JConsole:
http://technology.amis.nl/blog/1238/modify-spring-beans-and-log4j-levels-on-a-running-server-with-jmx-and-jconsole

And where this gets really interesting is if you have multiple servers 
(e.g. tiered architectures and/or clusters), it's really easy to script 
JMX across multiple servers using JRuby and jmx4r:
http://github.com/jmesnil/jmx4r/tree/master

Hope something in that lot is useful for you :-)

Paul

------------------
Paul Field
Research IT
Deutsche Bank




Peter Stavrinides <P....@albourne.com> 
19/05/2009 14:40
Please respond to
"Tapestry users" <us...@tapestry.apache.org>


To
Tapestry users <us...@tapestry.apache.org>
cc

Subject
Re: Changing logging level at runtime






I have seen this code used with configureAndWatch:
URL url = this.getClass().getResource("log4j.properties");
// Configure the properties and observe the file every 2 seconds
PropertyConfigurator.configureAndWatch(url.getPath(), 2000);

But it is said to be problematic as it may cause issues with shutting down 
classloaders!? so that is why a configuration application is recommended.

Peter

----- Original Message -----
From: "Borut Bolčina" <bo...@gmail.com>
To: "List Tapestry User" <us...@tapestry.apache.org>
Sent: Tuesday, 19 May, 2009 14:39:07 GMT +02:00 Athens, Beirut, Bucharest, 
Istanbul
Subject: Changing logging level at runtime

Hi,

I've been using log4j's configureAndWatch in some of my backend java apps. 
I
want to be able to change log4j.properties for my T5.0.18 web app and see
the change (log level) in my logs without restarting Tomcat.

My goal is to switch to debug level when I see "fishy behaviur" in the
production deployed apps.

How to achive this in best practice?

-Borut

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org






---

This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional EU corporate and regulatory disclosures.

Re: Changing logging level at runtime

Posted by Peter Stavrinides <P....@albourne.com>.
I have seen this code used with configureAndWatch:
URL url = this.getClass().getResource("log4j.properties");
// Configure the properties and observe the file every 2 seconds
PropertyConfigurator.configureAndWatch(url.getPath(), 2000);

But it is said to be problematic as it may cause issues with shutting down classloaders!? so that is why a configuration application is recommended.

Peter

----- Original Message -----
From: "Borut Bolčina" <bo...@gmail.com>
To: "List Tapestry User" <us...@tapestry.apache.org>
Sent: Tuesday, 19 May, 2009 14:39:07 GMT +02:00 Athens, Beirut, Bucharest, Istanbul
Subject: Changing logging level at runtime

Hi,

I've been using log4j's configureAndWatch in some of my backend java apps. I
want to be able to change log4j.properties for my T5.0.18 web app and see
the change (log level) in my logs without restarting Tomcat.

My goal is to switch to debug level when I see "fishy behaviur" in the
production deployed apps.

How to achive this in best practice?

-Borut

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org