我希望能够为每个日志消息执行一个方法,允许我在日志记录之前动态修改该消息。我知道有一些过滤器允许我指示是否应该记录消息,但我不想阻止记录消息,我只想在记录之前对其进行修改。我该怎么做呢?
注意:我问了这个关于log4j2的问题,但我也对其他流行Java日志框架持开放态度。
您可以实现自己的appender。
http://logging.apache.org/log4j/2.x/manual/appenders.html#RewriteAppender
只需扩展当前正在使用的appender并添加所需的行为,或者只需使用RewriteAppender
RewriteAppender RewriteAppender允许在日志事件被另一个Appender处理之前对其进行操作。这可用于屏蔽密码等敏感信息,或将信息注入每个事件。必须使用重写策略配置重写器。重写appender应该在它引用的任何appender之后进行配置,以允许它正确关闭。
不要忘记工厂方法:)
@PluginFactory
public static MarkerInjectorRewritePolicy createPolicy() {
return new MarkerInjectorRewritePolicy();
}
这是我的github帐户上的一个工作示例:https://github.com/sercasti/Log4j-RewriteAppender/
我试图从log4j1更改为log4j2。我所做的: 已删除旧配置文件log4j。xml 创建了新的配置文件log4j2。xml 创建了jboss部署结构。xml 编辑的pom 环境:野蝇10 1 EAR 4 WAR文件中没有使用web.xml。以前的log4j配置日志在EAR中(仅) Log4j2配置文件 Jboss部署结构 新的maven依赖关系 我之前说过我在SLF4j中使用log4j1。这些
互联网上有许多帖子建议如何从logback迁移到log4j2进行Spring引导日志记录。 参考这个sof post-Spring Boot日志与log4j2-我已经配置我的项目使用log4j2。然后我添加了一些基本的log4j2.xml和log4j2.properties文件来测试。 但是在这些更改之后,我的项目无法进行任何日志记录。有人能帮我找出毛病吗? 项目代码可在github-https:
假设我们构建了一个JavaSDK,不同的项目可以通过将其添加为类路径中的jar或添加为mavenpom.xml或gradle文件中的依赖项来使用它。当其他项目使用该库时,SDK中的日志在运行时不可见。我尝试使用SL4J,当其他项目使用它时,没有一个日志在运行时可见。我应该用log4j2吗?如果是,我应该在我的SDK中提供log4j配置 /properties文件吗?是否会在运行时从消费者库中提取属
是的,我已经阅读了所有相关的问题。我正在使用log4j2(尝试了2.4版和更新到最新的2.6.2版)。 我有一个面向客户的小型实用程序。我渴望将暴露的配置保持在最低限度。但对于有问题的情况,我还想添加一个标志,以便在运行时启用调试日志。 这是我启用调试日志记录的代码 但它实际上并不适用于这些情况: 实用程序通常在30秒内完成,因此更改应该是即时的。这是log4j2。xml 使用AppenderRe
我将log4j2与xml配置一起使用。我想记录由 如何在log4j2 xml配置文件中配置它来记录这些?
我在应用程序中使用Log4JV2.0Beta3进行日志记录,并且在运行单元测试时生成日志消息。我检查了API以确定将日志级别设置为关键级别的方法,但我找不到任何方法来更改日志程序配置。 事实上,我是在log4j2网站上读到的: