Tag: 日志

如何使用log4j的相同记录器将不同的信息写入两个不同的文件?

我想使用我的记录器写入两个不同的文件,声明如下: public static final Logger logger = Logger.getLogger(Adapt.class); PropertyConfigurator.configure(“log4j.properties”); log4j文件包含: log4j.rootLogger=DEBUG, FA #File Appender log4j.appender.FA=org.apache.log4j.FileAppender log4j.appender.FA.File=temp.ppr log4j.appender.FA.layout=org.apache.log4j.PatternLayout log4j.appender.FA.append=false log4j.appender.FA.layout.ConversionPattern= %m%n 是否可以使用记录器轻松地将不同的文本写入两个不同的文件? 如果没有,有没有办法用两个记录器做到这一点? (我试过并因为函数configure而出现问题,这是静态的。) 谢谢。

使用log4j2的多个线程的不同日志文件

我正在运行一个Java应用程序,我在其中调用多个线程,每个线程都有一些唯一的名称。 现在我想为每个日志文件创建多个日志文件,日志文件的名称应该作为线程名称。 这可能是使用log4j2。 请帮我写log4j2配置文件。 先谢谢你。

如何规范记录指令产生的打印输出量随着时间的推移而产生?

如何在Y秒内将程序日志打印输出限制为最多X个打印输出? 使用java.util.logging编程服务器端,我的代码有很多信息,警告和错误语句,如: s_logger.logp(Level.WARNING, myClassName, myMethodName, “msg.code.in.properties.file”); 一方面,我确实希望看到上面的警告信息打印到STDOUT,因为它表明出现了问题,特别是在调查生产中的问题时,但另一方面,打印了许多讲述相同故事的线条在很短的时间内,没有附加价值,而是打击性能并引入滚动失明。 我正在寻找的是一种机制/ API,可以在y秒内将每个消息代码的打印输出调整为不超过x条消息。 例如,在一分钟内,我不想生成和写入超过10个类型的消息:“事务超时”。 我很高兴API或库参考,任​​何人?

挂钩到System.out.println(); 并修改

我想修改System.out.println();打印的输出System.out.println(); 。 这怎么可能? 这是可能的 – 我在Bukkit / Craftbukkit中看到过它。 如果插件正在使用System.out.println(String string)打印字符串; Bukkit为字符串添加时间/日期和日志状态。 我想像Bukkit一样做。

Jetty HTTP日志记录

我想让Jetty记录所有HTTP请求(以及正文)和响应。 这是Jetty原生支持的吗? 理想情况下,它会记录到我现有的log4j日志文件中。 我正在运行Jetty 6。

如何在log4j2中创建自定义RewritePolicy?

我正在尝试在Log4j2中编写自己的RewritePolicy。 文件说明: RewritePolicy是一个接口,允许实现在将LogEvent传递给Appender之前检查并可能修改它们。 RewritePolicy声明了一个必须实现的名为rewrite的方法。 该方法传递给LogEvent,可以返回相同的事件或创建一个新事件。 这是我的java类 : public final class MarkerInjectorRewritePolicy implements RewritePolicy { @Override public LogEvent rewrite(final LogEvent event) { final Marker marker = event.getMarker(); if (marker == null) return event; // If there’s a Marker, add it to the ThreadContextMap so the RoutingAppender can properly routes log messages event.getContextMap().put(“_marker”, marker.getName()); return event; } […]

配置Log4j属性路径的最佳实践

我在我的应用程序中使用Log4j。 log4j.properties放置在类路径中的Jar中。 正在使用此配置文件,并且大多数时候都可以正常工作。 但有时,生成的日志记录语句不符合配置文件。 我的理解是,这是因为属性文件是从类路径中获取的。 无论第一个属性文件是什么,都是由log4j提取和使用的。 因此,有时我们会使日志语句与属性文件中配置的日志语句不同。 如果上述原因是正确的,那么我认为,我们需要通过以下方式之一具体指定配置文件: 使用系统属性指定:-Dlog4j.configuration = log4j.properties 初始化Log4jInit servlet。 请建议哪种方法更好。

“垃圾收集日志”中的“GC–”是什么意思?

我们打开了详细的GC日志记录来跟踪已知的内存泄漏并在日志中获得以下条目: … 3607872.687: [GC 471630K->390767K(462208K), 0.0325540 secs] 3607873.213: [GC– 458095K->462181K(462208K), 0.2757790 secs] 3607873.488: [Full GC 462181K->382186K(462208K), 1.5346420 secs] … 我理解第一个和第三个,但“GC–”是什么意思?

如何用log4j2只记录一个级别?

我在我的应用程序中使用log4j2。 我想要的是一切都要去’调试’去控制台,一切都要去’info’去myapp.log,只有’info’去’myapp-audit.log’。 原因是,INFO主要包括对数据的成功修改(例如“用户创建”,“用户更新”,“用户删除”等)。 如果是有效的数据修改审计日志。 但我无法弄明白该怎么做。 如何才能获得“info”以登录“myapp-audit.log”? 这是我目前的配置……

如何指定Log4J 2.x配置位置?

有没有办法手动指定Log4J 2.x log4j2.xml文件位置(如Log4J 1.x中的DOMConfigurator ),而不会弄乱类路径和系统属性?