Thanks Bob, this is of great help! Muzaffer
> -----Original Message----- > From: Bob Schellink [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 11, 2008 10:32 AM > To: [email protected] > Subject: Re: Logging in 1.4.2 > > Hi Muzaffer, > > > Ozakca, Muzaffer wrote: > > I’m still using 1.4.2 at the moment and wondering if there is a simple > > way to change logging that is currently going to console. I guess, > > setting the mode to “production” would remove most all logging messages > > but I’m curious if there is a way to send log messages to a file. Would > > I need to override ClickLogger? > > > Yes you'll need to extend it and create a custom ClickServlet which > overrides #createClickLogger to return the new logger. > > Below is an example of how you could adapt to Java Logging (or Log4J). > Please make a note that if you upgrade to 1.5 you'll need to remove > this custom logger and switch to either the new JdkLogService or > Log4JLogService. > > > > MyClickServlet.java > > public class MyClickServlet extends ClickServlet { > > protected ClickLogger createClickLogger() { > return new JdkClickLogger(); > } > } > > > JdkClickLogger.java > > public class JdkClickLogger extends ClickLogger { > > private Logger logger = > Logger.getLogger(JdkClickLogger.class.getName()); > > private Level level = Level.INFO; > > /** The level names. */ > private static final String[] LEVELS = > { " [trace] ", " [debug] ", " [info ] ", " [warn ] ", " [error] " }; > > public JdkClickLogger() { > } > > public void log(int levelInt, String message, Throwable error) { > > Level newLevel = Level.INFO; > > switch(levelInt) { > case 0: > newLevel = Level.FINE; > break; > case 1: > newLevel = Level.INFO; > break; > case 2: > newLevel = Level.INFO; > break; > case 3: > newLevel = Level.WARNING; > case 4: > newLevel = Level.SEVERE; > } > initLogLevels(newLevel); > logger.log(level, message, error); > } > > // Tricky bit with Java Logger. Need to init the new Log level > private void initLogLevels(Level newLevel) { > if(level.equals(newLevel)) { > return; > } > level = newLevel; > > Logger rootLogger = Logger.getLogger(""); > rootLogger.setLevel(level); > > Handler[] handlers = rootLogger.getHandlers( ); > > for (int i = 0; i < handlers.length; i++) { > handlers[i].setLevel(level); > //handlers[i].setLevel(Level.OFF); > } > } > }
