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<[email protected]> 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 <[email protected]>

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



Reply via email to