当前位置: 首页 > 知识库问答 >
问题:

log4j-程序配置

崔绍辉
2023-03-14

我使用log4j(1.2.15)来登录我的应用程序,其中我有两个用于两个不同包(darius.log4j.sql和darius.log4j.net)的文件追加器和一个控制台追加器。其配置如下:

# CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# FILE A
log4j.appender.A=org.apache.log4j.FileAppender
log4j.appender.A.File=A.log
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# FILE B
log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.File=B.log
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#
log4j.rootLogger=ERROR, CONSOLE
#
log4j.logger.darius.sql=DEBUG, A
log4j.logger.darius.net=INFO, B

我现在需要的是以编程方式添加一个新的文件appender,如果出现特定的数据组合。我知道如何定义这个新的文件appender(前C),但我不知道如何设置级别和新的appender到第三个包:

log4j.logger.darius.ws=INFO, C

其中C是第三个文件追加器。

有击中吗?

共有1个答案

仲孙夕
2023-03-14

易于理解的创建第三个appender(C)后,为您的命名空间(darius.ws)获取一个记录器,然后设置该记录器的信息级别。最后,只需将这个C追加器附加到记录器。

FileAppender fileAppender = new FileAppender();
fileAppender.setName("C");
fileAppender.setFile("C.log");
fileAppender.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
fileAppender.setThreshold(Level.INFO);
fileAppender.setAppend(true);
...
Logger someLogger = Logger.getLogger("darius.ws");
someLogger.setLevel(Level.INFO);
someLogger.addAppender(fileAppender);

顺致敬意,

 类似资料:
  • 我正在使用log4j2库来管理日志记录过程。我创建了一个名为log4j2的配置文件。包含appender和logger配置的xml。然后,我在每个类中定义了一个记录器 我没有在任何地方指定conf文件的名称,所以我认为库隐式地获取并读取它。 现在,我需要以jar文件的形式提供我的应用程序,所以我需要使配置文件可用,以便用户可以修改和配置它。 在我的例子中,我建议在jar文件级别创建一个XXX文件夹

  • 我试图通过以下代码实现一个基本配置器 的类def是 我使用的是Log4j2,分布在这里。当我在构建路径中有Log4j-to-slf4j和实现jar时,我总是得到SLF4J桥接错误: 我认为应该为DEBUG配置根记录器,因此我的所有日志语句都应该通过(即DEBUG级别或更高级别的任何内容)。但运行应用程序时,在控制台上看不到任何日志消息。我错过了什么?

  • 如前所述,更改Spark集群冗长性的理想方法是更改相应的log4j.properties。然而,在dataproc上,Spark在Yarn上运行,因此我们必须调整全局配置,而不是/usr/lib/Spark/conf 几点建议: 在dataproc上,我们有几个gcloud命令和属性可以在集群创建过程中传递。请参阅留档是否可以通过指定更改 /etc/hadoop/conf下的log4j.prope

  • 我在使用DOMConfigurator的JavaEE Web应用程序中使用Log4j时面临一个问题。我的类路径log4j.jar文件,log4j.xml文件的路径 /WEB-INF/config/log4j.xml. 以下是例外情况: 下面是获取log4j的代码。servlet中的xml文件: 进入网页。xml

  • 将log4j的jar包放入WebContent/WEB-INF/lib下面 在conf目录中,新建一个文件,名为 log4j.properties 内容是 log4j.rootLogger=debug,Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.

  • 问题内容: 我在使用在XML log4j配置文件中定义的附加程序进行记录时遇到麻烦。 我在EAR的META-INF文件夹上创建了 jboss-deployment-structure.xml ,没有成功。 在 JBoss的部署,structure.xml 结构为: 我什至尝试编辑我的 standalone.conf.bat 文件并添加以下行: 我的应用程序部署是这样的: 我注意到以下错误: 子部署