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

如何使用属性文件与一个记录器使用相同类型的多个附加程序?

牟稳
2023-03-14

我有一个简单的问题,但我想不出来。使用同一类型的多个附加器(RollingFile)和Log4j2属性文件格式的单个记录器的正确语法是什么?

作为背景,我使用的是Karaf4.2。7使用pax日志记录。我的日志配置文件是属性格式。

log4j2.appender.fileapp1.type = RollingRandomAccessFile
log4j2.appender.fileapp1.name = FileApp1
...

log4j2.appender.fileapp2.type = RollingRandomAccessFile
log4j2.appender.fileapp2.name = FileApp2
...

log4j2.logger.myloggername.name = com.acme
log4j2.logger.myloggername.appenderRef.RollingFile.ref = FileApp1, FileApp2

将两个追加器放在用逗号分隔的最后一行不起作用。如果我只有一个appender或另一个appender,它就会工作。我也试过了

log4j2.logger.myloggername.appenderRef.RollingFile.ref = [FileApp1, FileApp2]

log4j2.logger.myloggername.appenderRef.RollingFile.ref = {FileApp1, FileApp2}

log4j2.logger.myloggername.appenderRef.RollingFile.ref = [{FileApp1}, {FileApp2}]

这些都不管用。我似乎在网上找不到任何关于如何做到这一点的例子。

共有1个答案

酆君墨
2023-03-14

我指的是两个网页(谢谢)。

  • log4j 2 log4j2。属性(配置选项)
  • Log4J 2配置:使用属性文件

添加并定义“~s”。

appender,appenderRefs,

这是定义下一个节目的通知。

name=PropertiesConfig
property.filename_fileapp1 = ./logs/fileapp1.log
property.filename_fileapp2 = ./logs/fileapp2.log

appenders = console, fileapp1, fileapp2

appender.console.type = Console
appender.console.name = STDOUT
...

appender.fileapp1.type = RollingRandomAccessFile
appender.fileapp1.name = fileapp1_AppenderName
appender.fileapp1.fileName = ${filename_fileapp1}
appender.fileapp1.filePattern = ${filename_fileapp1}.%d{yyyy-MM-dd}.log
...

appender.fileapp2.type = RollingRandomAccessFile
appender.fileapp2.name = fileapp2_AppenderName
appender.fileapp2.fileName = ${filename_fileapp2}
appender.fileapp2.filePattern = ${filename_fileapp2}.%d{yyyy-MM-dd}.log
...


loggers = mylogger1
logger.mylogger1.name = com.jornathan.sample.log4j2PropertyTest
logger.mylogger1.level = info   

#keep this value for testing.
logger.mylogger1.additivity = true

#Here is what you need.
logger.mylogger1.appenderRefs = fileapp1Appender, fileapp2Appender   
logger.mylogger1.appenderRef.fileapp1Appender.ref = fileapp1_AppenderName
logger.mylogger1.appenderRef.fileapp2Appender.ref = fileapp2_AppenderName
 类似资料:
  • 问题内容: 我想在我的应用程序中使用两个不同的记录器,并且在他们向其尊重日志中写入的内容之间没有“重叠”。 例如: Logger1写入与一组系统事件相关的INFO事件 Logger2写入与另一组系统事件有关的INFO事件 两次不应在日志中出现任何条目 我的log4j.properties如下: 我的Java代码如下: 但是我的控制台输出如下: 注意,“ xdas”由和同时记录,这是不希望的。 有谁

  • 问题内容: 我将sql存储在属性文件中,并使用spring注入它,这有效: 但出于可读性,我想要这样: 我需要使用什么正确的文本格式? 问题答案: 在行的末尾使用\ 另外,请注意任何尾随空格,因为Java在组装线时会寻找连续的反斜杠+换行符。 换种说法:反斜线必须是换行符之前该行的最后一个字符。

  • 问题内容: 我想在我的应用程序(Spring Integration)中有两个日志文件,debug.log和main.log。我想在INFO级别运行main.log,在DEBUG级别运行debug.log。这可以通过追加程序上的过滤器完成。我想根据源将不同级别记录到附加程序。换一种说法 总结一下: 弹簧记录器 主要->错误 调试->调试 com.myapp记录器 主要->信息 调试->调试 因此,

  • 上面是log4j2的一个片段。xml配置文件,我想将其转换为属性。 问题是当我在同一个文件(属性)中定义多个记录器时,只有根记录器工作,这意味着改变其他记录器的级别不会做任何事情。 在同一个属性配置文件中定义多个记录器的正确方法是什么? 编辑: 这是我尝试过的属性配置,但不起作用。

  • 问题内容: 我有一个带有两个DateTime属性的类。我需要使用不同的格式序列化每个属性。我该怎么做?我试过了: 该解决方案不适用于我,因为它将日期格式应用于所有属性。有什么方法可以序列化具有不同格式的每个DateTime属性?也许有一些属性? 问题答案: 具有难以理解的结构,您可以使用以下自定义转换器之类的工具来执行所需的操作: