使用 Log4J 的同一类中的不同 Logger
我希望单独记录同一类中生成的特定消息。那么,如何在同一个类中创建两种不同类型的记录器。目前,属性文件看起来像
log4j.rootCategory=DEBUG, O
# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
# File
log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender
log4j.appender.MESSAGE.File=target/logs/messages.log
# Control the maximum log file size
log4j.appender.MESSAGE.MaxFileSize=1000KB
# Archive log files (one backup file here)
log4j.appender.MESSAGE.MaxBackupIndex=100
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M (% F:% L) - %m%n
log4j.appender.MESSAGE.
log4j.category.failedMessagesLog=INFO, MESSAGE
我在代码中使用的日志记录: – /** 记录器。 */
Logger logger = Logger.getLogger(MyClass.class);
Logger msgLogger = Logger.getLogger("MESSAGE");
经过测试,我创建了一个空日志文件(messages.log)。 有什么建议吗?
I want specific messages generated from within the same class to be logged separately. So, how can I create 2 different types of loggers within the same class. Currently, the Properties file looks like
log4j.rootCategory=DEBUG, O
# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
# File
log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender
log4j.appender.MESSAGE.File=target/logs/messages.log
# Control the maximum log file size
log4j.appender.MESSAGE.MaxFileSize=1000KB
# Archive log files (one backup file here)
log4j.appender.MESSAGE.MaxBackupIndex=100
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M (% F:% L) - %m%n
log4j.appender.MESSAGE.
log4j.category.failedMessagesLog=INFO, MESSAGE
I'm using the logging in my code as: –
/** Logger. */
Logger logger = Logger.getLogger(MyClass.class);
Logger msgLogger = Logger.getLogger("MESSAGE");
Upon testing, I get an empty log file (messages.log) created.
Any suggestions??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建两个具有不同名称的记录器。您可以按名称配置它们。
执行此操作的一个简单方法是为类名添加后缀。例如
在您的属性文件中。
Create two loggers with different names. You can configure them on a per name basis.
A simple way to do this is to add a suffix to you class name. e.g.
in your properties file.
“failedMessagesLog”是应用了appender
(INFO,MESSAGE, MESSAGE1)
的java文件。我刚刚重用了现有的
RollingFileAppender
。您可以使用任何其他附加程序(如 fileAppender)。您应该使用正确的类名
Logger logger = Logger.getLogger(MyClass.class)
应更改为
private static Final Logger log = Logger.getLogger( **failedMessagesLog.class** )
;确保您使用的是 log4j 的日志记录 ie
"failedMessagesLog" is the java file to which appender
(INFO,MESSAGE, MESSAGE1)
is applied.I have just reused existing
RollingFileAppender
. you can use any other appender ( like fileAppender).You should use the right Class name
Logger logger = Logger.getLogger(MyClass.class)
should be changed to
private static final Logger log = Logger.getLogger( **failedMessagesLog.class** )
;Make sure you are using log4j's logging ie