关于 Log4jAppender 的问题

发布于 2024-10-07 11:28:27 字数 938 浏览 0 评论 0原文

我已经开始学习有关 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帝王念 2024-10-14 11:28:27
log4j.rootLogger=DEBUG,A1
log4j.newlogger=WARN, XML

Log4j 的工作方式如下:您可以创建多个记录器,这些记录器适合根记录器始终位于顶部的层次结构。记录器可以从父记录器继承级别和追加器(如果可加性标志打开)。

在我给您的示例中,您创建的新记录器在 WARN 级别触发。它有 XML 作为附加程序,但也有 A1(它从根记录器继承)。

请注意,如果我们没有设置 newLogger 的级别,它将继承 DEBUG 级别。

log4j 中的层次结构与 java 包中的工作方式类似(使用点)并依赖于记录器名称。记录器 X 是记录器 XY 的父级,记录器 XY 是记录器 XYZ 的父级。记录器 X 始终是根记录器的子级。

您可以在 Log4j 简介 中了解更多相关信息

log4j.rootLogger=DEBUG,A1
log4j.newlogger=WARN, XML

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

沉溺在你眼里的海 2024-10-14 11:28:27

在 Log4net 的文档中,它在某处说您可以设置要从附加程序处理的级别。

In the documentation of Log4net it says somewhere that you can set which levels to be handled from the appender.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文