我想使用log4j Logger的多个实例.我需要将不同的Properties对象附加到每个log4j Logger实例.
以下是为一个实例配置的代码:
LOG4J = org.apache.log4j.Logger.getLogger(Logger.class);
Properties log4jProps = new Properties();
...
PropertyConfigurator.configure(log4jProps);
Run Code Online (Sandbox Code Playgroud)
如果我想要两个log4j实例并且每个实例都有不同的属性怎么办?
你能解释为什么你想要更详细的多个记录器吗?我认为不可能有多个log4j实例.
如果你只想要多个appender,请看这里:
这是上面链接中的log4j.properties:
# logj4.properties
log4j.rootCategory = WARN, A
log4j.category.com.lewscanon = WARN, F
log4j.category.com.lewscanon.mouser = DEBUG, X
log4j.appender.A = org.apache.log4j.ConsoleAppender
log4j.appender.A.layout = org.apache.log4j.PatternLayout
log4j.appender.F = org.apache.log4j.RollingFileAppender
log4j.appender.F.layout = org.apache.log4j.PatternLayout
log4j.appender.F.File = /projects/mouser/logs/lewscanon.log
log4j.appender.F.MaxFileSize = 512KB
log4j.appender.F.MaxBackupIndex = 2
log4j.appender.X = org.apache.log4j.RollingFileAppender
log4j.appender.X.layout = org.apache.log4j.PatternLayout
log4j.appender.X.File = /projects/mouser/logs/mouser.log
log4j.appender.X.MaxFileSize = 512KB
log4j.appender.X.MaxBackupIndex = 2
log4j.appender.A.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
log4j.appender.F.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
log4j.appender.X.layout.ConversionPattern= %d %-16c{1}:%-39m %-t %x%n
Run Code Online (Sandbox Code Playgroud)
这些线:
log4j.rootCategory = WARN, A
log4j.category.com.lewscanon = WARN, F
log4j.category.com.lewscanon.mouser = DEBUG, X
Run Code Online (Sandbox Code Playgroud)
说以下内容:
它也可以提供完整的类名:
log4j.category.com.lewscanon.SomeClass = WARN, F
Run Code Online (Sandbox Code Playgroud)
意味着记录从com.lewscanon.SomeClass类到appender F,级别警告及以上的所有内容.
我认为上面的内容足够精细,但是如果你绝对需要它更细粒度(我认为这不够实用),每个:
Logger.getLogger(String name)接受姓名.所以你可以这样做:
log4j.category.myFancyLogger = INFO, F
Run Code Online (Sandbox Code Playgroud)
并用于Logger.getLogger("myFancyLogger")获取记录器,该记录器使用级别信息记录到appender F.
| 归档时间: |
|
| 查看次数: |
5935 次 |
| 最近记录: |