[logback-user] Programmmatically creatinglogger/appender/pattern

Lance White lance.white at logicscope.com
Thu Mar 26 12:12:45 CET 2009


Of course... 5 minutes after posting this, I got it working!

Ho hum!

Lance

-----Original Message-----
From: logback-user-bounces at qos.ch [mailto:logback-user-bounces at qos.ch] On Behalf Of Lance White
Sent: 26 March 2009 10:42
To: logback users list
Subject: Re: [logback-user] Programmmatically creatinglogger/appender/pattern

OK, I still can't get this working, and having looked at the junit src, they're all individual tests and I couldn't find any integrated tests in there.

This is the simple test I'm trying to use. If I use the LoggerContext from the ILoggerFactory, then I get a log message to the console (using the standard stuff I presume) and no file is created. If I create the LoggerContext then no output is produced anywhere.

Java is 1.5.0_16.

Cheers

Lance

(p.s. I've got this working with log4j, but I'm trying to upgrade)

---------------------------------------------------------------------------------

import org.slf4j.LoggerFactory;

import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.PatternLayout;
import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.rolling.FixedWindowRollingPolicy;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy;

public class Test2
{
	public Test2() { }
	
	public void run(String name) {
		LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
//		LoggerContext lc = new LoggerContext();
		Logger logger = lc.getLogger(name);
		
		PatternLayout layout = new PatternLayout();
		layout.setPattern("%d:%msg%n");

		RollingFileAppender<LoggingEvent> rfa = new RollingFileAppender<LoggingEvent>();
		rfa.setContext(lc);
		rfa.setName(name + "_Appender");
		rfa.setLayout(layout);
		rfa.setFile("c:\\" + name + ".log");

		SizeBasedTriggeringPolicy<LoggingEvent> triggeringPolicy = new SizeBasedTriggeringPolicy<LoggingEvent>();
		triggeringPolicy.setContext(lc);
		triggeringPolicy.setMaxFileSize(String.valueOf(50000));
		triggeringPolicy.start();
		rfa.setTriggeringPolicy(triggeringPolicy);

		FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy();
		rollingPolicy.setContext(lc);
		rollingPolicy.setFileNamePattern("c:\\" + name + "-%i.log");
		rollingPolicy.setMinIndex(1);
		rollingPolicy.setMaxIndex(10);
		rollingPolicy.setParent(rfa);
		rollingPolicy.start();
		rfa.setRollingPolicy(rollingPolicy);

	
		logger.info("hello");
	}
	
	
	public static void main(String[] args)
	{
		Test2 t = new Test2();
		t.run("fred");
	}
}
---------------------------------------------------------------------------------

-----Original Message-----
From: logback-user-bounces at qos.ch [mailto:logback-user-bounces at qos.ch] On Behalf Of Lance White
Sent: 25 March 2009 16:09
To: logback users list
Subject: Re: [logback-user] Programmmatically creatinglogger/appender/pattern

Cheers Ceki, I'll go through those.

Lance

-----Original Message-----
From: logback-user-bounces at qos.ch [mailto:logback-user-bounces at qos.ch] On Behalf Of Ceki Gulcu
Sent: 25 March 2009 16:02
To: logback users list
Subject: Re: [logback-user] Programmmatically creatinglogger/appender/pattern

Hello Lance,

Look into the junit test cases which do that type of operation all the time. For 
example, see:

http://logback.qos.ch/xref-test/ch/qos/logback/classic/html/HTMLLayoutTest.html
http://logback.qos.ch/xref-test/ch/qos/logback/core/rolling/SizeBasedRollingTest.html

If that does not help, post your code here.

Lance White wrote:
> Has anyone got any examples on how to programmatically create a logger /
> appender / pattern et. al in-line in code?
> 
> I can't for the life of me get this running. Currently I've got the
> appender  (file appender in this case) creating the output files, but
> all I get in them is stuff like:
> 
>  %PARSER_ERROR_d:MODULE:%PARSER_ERROR_msg%
> 
> Which looks like the pattern stuff isn't started up properly.
> 
> Cheers
> 
> Lance

-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://qos.ch/mailman/listinfo/logback-user

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.0.238 / Virus Database: 270.11.23/2016 - Release Date: 03/25/09 07:16:00
_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://qos.ch/mailman/listinfo/logback-user

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.0.238 / Virus Database: 270.11.23/2016 - Release Date: 03/25/09 07:16:00
_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://qos.ch/mailman/listinfo/logback-user

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 8.0.238 / Virus Database: 270.11.23/2016 - Release Date: 03/25/09 18:54:00


More information about the Logback-user mailing list