incubator-jspwiki-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Janne Jalkanen <janne.jalka...@ecyrd.com>
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.

/Janne

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( "log4j.properties" );
>        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 bright-green.com. :)
>
> 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<andre.van.dalen@siemens.com> 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 [mailto:janne.jalkanen@ecyrd.com]
>> Sent: maandag 7 september 2009 8:26
>> To: jspwiki-dev@incubator.apache.org
>> 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<harry.metske@gmail.com> wrote:
>>>> Well,
>>>>
>>>> we have our own logging layer (org.apache.wiki.log) 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 :
>>>> http://www.slf4j.org/faq.html#configure_logging
>>>> 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 <andrew.r.jaquith@gmail.com>
>>>>
>>>>> 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 priha.properties
>>>>> that
>>>>> needs to be set, but I don't know what it is.
>>>>>
>>>>> Andrew
>>>>>
>>>>
>>
>>


Mime
View raw message