incubator-jspwiki-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Janne Jalkanen <>
Subject Re: Restart logging?
Date Mon, 07 Sep 2009 18:14:44 GMT

This of course works only in the case someone is using log4j and the  
PropertyConfigurator and nothing very exotic - which is of course what  
we're doing in the default installation...

We could just output a log message that the log could not be reset in  
case it's something we don't know what it is.


On 7 Sep 2009, at 14:55, Andrew Jaquith wrote:

> Ok, I figured it out. Google is my friend. I simply added this to the
> [new] WikiEngine.restart() method:
>        LogManager.resetConfiguration();
>        ClassLoader cl = this.getClass().getClassLoader();
>        URL log4jprops = cl.getResource( "" );
>        if (log4jprops != null)
>            PropertyConfigurator.configure(log4jprops);
> ...and that's all it took. I'll check this in soon.
> Hat-tip goes to Alan Green at :)
> Now, this might not work if somebody swaps out their logging
> configuration, so we might want to add in some safeguards to see if
> Log4j is actually being used. But to Janne's point, this is about the
> first-use experience. Which has now improved dramatically. :)
> Andrew
> On Mon, Sep 7, 2009 at 5:43 AM, Dalen, Andre
> van<> wrote:
>>> Another possibility is to switch to Simple logging, which always  
>>> goes
>>> to stdout - in Tomcat's case, catalina.out.  Then there would be no
>>> need to provide configuration on Install.jsp, which would simplify  
>>> our
>>> install process even more.
>> Such simple logging would not give enough control on resource use.
>> It would be better imho to switch to log4j instead.
>> Eventually a reload is shorthand for the sequence shutdown, startup.
>> Logging libraries should give their user control over when the  
>> shutdown
>> happens
>> exactly, so I would assume a reload won't be a problem if implemented
>> as a shutdown of the logging subsystem followed by a startup.
>>        regards, Andre
>> -----Original Message-----
>> From: Janne Jalkanen []
>> Sent: maandag 7 september 2009 8:26
>> To:
>> Subject: Re: Restart logging?
>> I don't think there's a simple way to do that through slf4j, simply
>> because log configuration is very specific to the actual logging
>> library used. For example, java.util.logging has a single global
>> LogManager, and to restart that one would mean writing our own
>> ClassLoader...
>> However, since this is about first-use experience, it's unlikely that
>> someone would both be savvy enough to first switch the logging  
>> library
>> - THEN go and apply the easy-install process. So we might get away
>> simply by reconfiguring whichever logging library we happen to be
>> shipping with.
>> Another possibility is to switch to Simple logging, which always goes
>> to stdout - in Tomcat's case, catalina.out.  Then there would be no
>> need to provide configuration on Install.jsp, which would simplify  
>> our
>> install process even more.
>> /Janne
>> On 7 Sep 2009, at 00:52, Andrew Jaquith wrote:
>>> Hi Harry,
>>> The idea is to configure the wiki, including logging settings, using
>>> the installer screen. Then, after pressing the "Configure!" button,
>>> presto! the wiki is configured the way it should be without  
>>> needing to
>>> restart the webapp. Instant gratification! It is much better than
>>> having to restart the webapp.
>>> Right now, in my local builds, everything *except* the log file  
>>> change
>>> seems to work fine. The goal is to have the desired log file  
>>> location
>>> (configured via the installer) reflected immediately -- the logs  
>>> start
>>> going to that file. So I want to know how best to do that. Whether  
>>> it
>>> is JMX or whatever, I don't care. But I am not a logging expert;  
>>> hence
>>> the broadcast. If you have ideas I'd like to hear about them.
>>> Andrew
>>> On Sun, Sep 6, 2009 at 12:45 PM, Harry
>>> Metske<> wrote:
>>>> Well,
>>>> we have our own logging layer ( which talks to
>>>> slf4j
>>>> which talks to a real logging implementation (with log4j as the
>>>> default).
>>>> The first two don't have support for configuring logging at all,
>>>> the writer
>>>> of slf4j says you also shouldn't :
>>>> Log4j itself does support dynamic configuration of logging, but
>>>> that has
>>>> explicitly not been put in the slf4j interface.
>>>> We do however have some way of dynamically configuring our loggers,
>>>> and
>>>> that's through the MBeans (currently you have to use jconsole to do
>>>> it, but
>>>> a nice GUI for it would still be nice). This is however limited.
>>>> So with "restart logging" you could something in that direction,
>>>> but again,
>>>> that is limited to log4j, if you run another logging
>>>> implementation, you are
>>>> left alone in the dark.
>>>> BTW, what exactly would be the difference between restarting the
>>>> engine and
>>>> reloading the whole webapp ?
>>>> regards,
>>>> Harry
>>>> 2009/9/6 Andrew Jaquith <>
>>>>> Hi all --
>>>>> I am doing a bunch of work on the installer/config code. I've
>>>>> already
>>>>> got some really cool features implemented (LDAP config and live
>>>>> testing, Stripesification of the interface, configuration of
>>>>> multiple
>>>>> properties files simultaneously...). One thing I would REALLY like
>>>>> to
>>>>> do is to be able to apply changes to the wiki WITHOUT requiring a
>>>>> webapp reload.
>>>>> To that end, I wrote a restart() method for the WikiEngine, and it
>>>>> seems to work perfectly except in one respect: I can't figure out
>>>>> how
>>>>> to restart the logging subsystem. Any hints? I'd like to be able  
>>>>> to
>>>>> allow the admin to specify the desired log file location, and  
>>>>> after
>>>>> restart all of the logging is redirected there.
>>>>> Actually, there is one more thing: how does one set the Priha page
>>>>> directory? I'm pretty sure there's a setting in
>>>>> that
>>>>> needs to be set, but I don't know what it is.
>>>>> Andrew

View raw message