[logback-user] custom logger / appender / layout
Daniel Rossi
spam at electroteque.org
Tue Oct 23 16:55:15 CEST 2007
Hi there I have a custom spring app I need to setup an access log
for. I'm needing it in W3C format for reporting purposes. I'm porting
it to logback from log4j because the server the application is in is
now using it. How is it possible to create a custom logger with
custom log level methods, a custom level class with levels higher
than FATAL so it doesnt get mixed up with the root logger. Im also
needing to create it all programatically so setup the logger when
requested because i need to produce a logger for each context path in
the spring app so i get a different log file for each context. Issue
ive experienced so far porting my code is that the layout,
rollingpolicy and appender all need contexts set to it or else it
complains about no context set ? I'm also needing to work out how it
would be possible to create a custom even / layout / pattern
convertor to obtain particular statistical details from the server
similar to the implementations for tomcat and jetty though its a
video server and not sure if its running in a servlet as such.
Ive worked out so far there is possibilities to add fields set in the
MDC to the file header aswell as in the pattern string for the file
appender.
As of now no log file is being set.
Here is the code so far.
MDC.put("x-event", "stop");
MDC.put("x-category", "stream");
logStats = (Logger)LoggerFactory.getLogger(loggerName);
if (null == logStats.getAppender(appenderName))
{
layout = new PatternLayout();
layout.setPattern("%X{x-event} %X{x-category} - %msg%n");
layout.setFileHeader("x-event \t x-category");
layout.setContext(logStats.getLoggerContext());
layout.start();
appender = new RollingFileAppender();
policy = new TimeBasedRollingPolicy();
policy.setContext(logStats.getLoggerContext());
policy.start();
appender.setContext(logStats.getLoggerContext());
appender.setName(appenderName);
appender.setLayout(layout);
policy.setFileNamePattern(path + logFilePattern);
appender.setRollingPolicy(policy);
appender.start();
logStats.addAppender(appender);
}
Currently I have to call
logStats.error("stop");
In my log4j class it was
logStats.stop("message");
which present the stop level inside it, but cant find and
implementation to subclass as yet.
Let me know thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://qos.ch/pipermail/logback-user/attachments/20071024/140c0c65/attachment.htm
More information about the Logback-user
mailing list