当前位置: 首页 > 面试题库 >

如何在Log4j中启用Logger.debug()

穆浩皛
2023-03-14
问题内容

尝试执行以下行时,仅显示最后两个语句(“ Here is some ERROR”和“ Here is some
FATAL”),并且不显示前三个语句。我刚刚开始学习此主题,任何人都可以告诉为什么会这样呢?

    logger.debug("Here is some DEBUG");
    logger.info("Here is some INFO");
    logger.warn("Here is some WARN");
    logger.error("Here is some ERROR");
    logger.fatal("Here is some FATAL");

log4j.property有

log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] %d{mm:ss}(%F:%M:%L)%n%m%n%n

问题答案:

您可能在项目中的某个地方有一个log4j.properties文件。在该文件中,您可以配置所需的调试输出级别。请参阅以下示例:

log4j.rootLogger=info, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.example=debug

第一行将根记录器的日志级别设置为“ info”,即,仅info,warn,error和致命的信息将被打印到控制台(这是在其下方定义的附加器)。

最后一行将记录器设置为com.example。*(如果通过来获取记录器LogFactory.getLogger(getClass()))将处于调试级别,即调试也将被打印。



 类似资料:
  • 我在Win7上使用Jdeveloper 11.1.1.6和WL 10.3。JDK1.6.0.3x64期间我根据网上的指南和信息尝试了一天的配置。但不幸的是我不能让它工作。就在我开始wls之后,遇到了这样的情况: 我基本上通过以下链接进行了跟踪:https://forums.oracle.com/forums/thread.jspa?threadid=1061248和http://docs.orac

  • 我下载了kafka-clients-0.9.0.0。jar与maven一起使用,我希望我会看到类似于Kafka日志链接中的日志记录 然而,我不知道为什么我没有得到任何日志记录,即使我设置了引导。purpuse上的服务器错误,但它只是在没有发出任何警告的情况下被卡住了。我添加了几行代码以使用log4j打印到一个文件中,这似乎是可行的,但不知道为什么Kafka不能将事件记录到log4j中。 请注意,s

  • 问题内容: 我想从Log4j 1.x迁移到Log4j2.x。所以我正在尝试使用这里提到的。我的应用程序具有的实现 ,但是我找不到使用log4j 2.x api桥使用LoggingEvent的方法。无论如何,我可以在Log4j 2.2中使用LoggingEvent吗? 谢谢。 问题答案: 在内部,log4j使用LogEvent将所有数据段(日志消息,线程名称,时间戳,标记,记录器名称等)携带到可能出

  • 问题内容: 我目前正在用Java编写一个大型项目,其中包含许多类,有些类很小,只用很少的方法表示对象。我的主班有一个记录器,它运行良好。我希望所有类只能使用一个记录器(带有一个控制台附加程序)。我试图将对记录器的引用传递给不同的类,但是看起来不正确。此外,有时我在不运行main的情况下在类上运行测试,因此未针对其他类初始化记录器。 我的意思是,如何做到这一点的最佳方法是如何从不同的类登录到一个日志

  • 问题内容: 我希望日志在应用程序运行期间一直滚动,但是我希望在重新启动应用程序时重新启动日志。 更新: 根据erickson的反馈,我的appender如下所示: 我只是添加了以下行: 现在,它会在启动时截断基本日志文件,但不保留滚动文件。 问题答案: 如果将参数设置为,则在应用程序重新启动时,基本日志文件将“重新启动”。您是说要删除所有“滚动”日志文件吗?

  • 问题内容: 我正在尝试使用JBoss Weld编写Java SE swing应用程序。Weld使用jar中的以下log4j.xml文件配置log4j的日志记录: 我想完全禁用应用程序中的日志记录。我试图通过提供log4j.properties文件来禁用它,如下所示: 无论我做什么,我都无法阻止来自Weld的log4j消息出现在控制台中。我要做的就是完全禁用日志记录。但是如何? 问题答案: 发布此问