关于 Log4jAppender 的问题
我已经开始学习有关 log4j 的一些知识,因为到目前为止它工作正常,这里是 log4j.property 文件中的代码
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1,xml
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# ${applicationRoot}/logs/xml.log
log4j.appender.xml=org.apache.log4j.RollingFileAppender
log4j.appender.xml.File=G:/TESTGEN/logs/xmlimpex.log
log4j.appender.xml.MaxFileSize=2MB
log4j.appender.xml.MaxBackupIndex=2
log4j.appender.xml.layout = org.apache.log4j.PatternLayout
log4j.appender.xml.layout.ConversionPattern=%p %t %c - %m%n
,它在控制台上完美地打印并记录到文件。我想知道是否可以执行以下操作
我希望我应该能够在控制台上记录此 log4j 文件正在执行的所有操作 但同时我希望在我使用 RollingFileAppender 配置的日志文件中应该仅记录警告和错误的条目。
请建议我如何做到这一点
提前致谢 乌梅什
i have started learning something about log4j as so far its working fine here is the code from the log4j.property file
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1,xml
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# ${applicationRoot}/logs/xml.log
log4j.appender.xml=org.apache.log4j.RollingFileAppender
log4j.appender.xml.File=G:/TESTGEN/logs/xmlimpex.log
log4j.appender.xml.MaxFileSize=2MB
log4j.appender.xml.MaxBackupIndex=2
log4j.appender.xml.layout = org.apache.log4j.PatternLayout
log4j.appender.xml.layout.ConversionPattern=%p %t %c - %m%n
and its working perfectly fine printing on the console as well logging to the file.I am wondering is it possible to do something as follow
i want that i should be able to log everything on the console which what this log4j file is doing
but on the same time i want that in the log file which i have configured using RollingFileAppender
should log entries only for warning and errors.
Please suggest me how i can do this
Thanks in advance
Umesh
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Log4j 的工作方式如下:您可以创建多个记录器,这些记录器适合根记录器始终位于顶部的层次结构。记录器可以从父记录器继承级别和追加器(如果可加性标志打开)。
在我给您的示例中,您创建的新记录器在 WARN 级别触发。它有 XML 作为附加程序,但也有 A1(它从根记录器继承)。
请注意,如果我们没有设置 newLogger 的级别,它将继承 DEBUG 级别。
log4j 中的层次结构与 java 包中的工作方式类似(使用点)并依赖于记录器名称。记录器 X 是记录器 XY 的父级,记录器 XY 是记录器 XYZ 的父级。记录器 X 始终是根记录器的子级。
您可以在 Log4j 简介 中了解更多相关信息
Log4j works in this way: You can create multiple loggers which fit in a hiearchy where the Root logger is always at the top. Loggers can inherit levels and appenders (if the additivity flag is on) from parent loggers.
In the example I gave you, the new logger that you created is triggered at a WARN level. It has as appenders XML but also A1 (which it inherited from the Root logger).
Note that if we hadn't set the level of newLogger, it would have inherited the level DEBUG.
Hiearchies in log4j work like in java packages (using dots) and rely on the logger names. Logger X is the parent of logger X.Y which is the parent of logger X.Y.Z. Logger X is always the child of the Root logger.
You can read more about this in the Log4j introduction
在 Log4net 的文档中,它在某处说您可以设置要从附加程序处理的级别。
In the documentation of Log4net it says somewhere that you can set which levels to be handled from the appender.