问题内容: 在log4j中,当使用具有BufferedIO = true和BufferSize = xxx属性(即启用了缓冲)的FileAppender时,我希望能够在正常关闭过程中刷新日志。有关如何执行此操作的任何想法? 问题答案:
问题内容: 因此,我尝试按照其网站上的此(非Maven实现)和要求将slf4j添加到log4j。并尝试使用此代码 并将以下内容添加到我的库中 log4j-api-2.3.jar log4j-core-2.3.jar log4j-sl4j-impl-2.3.jar log4j-to-sl4j-2.3.jar slf4j-api-1.7.12.jar 当我尝试运行它时,出现以下错误 知道我要去哪里错了
问题内容: 如何根据包名将log4j设置为登录到其他文件? 例如: 我正在使用属性文件配置格式。目前,它是为服务器设置的,我想不理会它,并添加一些东西来记录我的日志。 属性文件如下所示: 问题答案: 您必须创建两个新的追加程序并相应地设置可加性。 更新:只需检查是否需要添加以下行。 您的常规日志文件在哪里,该日志文件记录除和以外的所有内容。
问题内容: 我有一个配置文件。和我需要它来存储日志提供文件路径。问题是我的代码将作为可运行的jar部署在Unix机器上。因此,如果我传递类似这样的参数: 它会在我的HOME目录中创建一个名为logs的文件夹,并将所有消息写入该目录中的文件。 我将环境变量设置为某个值。我想使用该变量的路径并在该路径下写入消息。我该如何实现? 我试过使用此: 但这不起作用。谁能为这个问题提出解决方案? 问题答案: 解
问题内容: 我想在log4j2.xml文件中使用重写追加程序,以便在记录之前可以修改日志。我没有从Google获得太多帮助。根据log4j2文档,Rewrite是具有重写方法的接口,而MapRewritePolicy是实现类,当我运行它时,我能够看到我的web3.log文件正在生成,但是看不到日志内容的任何修改。我看到了MapRewritePolicy源代码,并在我的项目中将本地实现类创建为Map
问题内容: 相对路径在log4j.properties文件中使用。 如何以编程方式找到存储日志的绝对路径? 问题答案: 来自:http : //www.gunith.com/2010/11/how-to-get-the-file-path-of-a- log4j-log-file/ 假设log4j.properties文件如下所示, 在这种情况下,您的Java代码应如下所示, 注意, 迁移日志 用
问题内容: 我有一个使用log4j SyslogAppender(facility = USER)的Java应用程序,我可以在端口514上使用tcpdump看到我的应用程序正在将预期的日志消息作为数据报发送,并且netstat告诉我syslogd(红色帽子)正在运行并且正在监听0.0 .0.0:514,但我看不到/ var / log / messages中发生任何日志记录。 在我的syslog.
问题内容: 我的Java应用程序使用JNI调用用C编写的库。此本地库将错误记录到stderr,但是我想以某种方式通过我的log4j记录器重定向错误流。这可能吗? C库是外部的-我没有源,所以无法更改它。 谢谢 问题答案: 注意:我尚未尝试此答案;YMMV。 POSIX方法将更改与流关联的基础文件。如联机帮助页所述:“ freopen()函数的主要用途是更改与标准文本流(stderr,stdin或s
问题内容: 我想从Log4j 1.x迁移到Log4j2.x。所以我正在尝试使用这里提到的。我的应用程序具有的实现 ,但是我找不到使用log4j 2.x api桥使用LoggingEvent的方法。无论如何,我可以在Log4j 2.2中使用LoggingEvent吗? 谢谢。 问题答案: 在内部,log4j使用LogEvent将所有数据段(日志消息,线程名称,时间戳,标记,记录器名称等)携带到可能出
问题内容: 我在log4j2中创建了一个自定义附加程序。使用自定义追加程序时,出现以下错误:“ ERROR试图追加到未启动的追加程序”。任何帮助表示赞赏。 问题答案: Log4j 2将检查每个日志事件附加器是否处于可用状态。您看到的错误是Log4j检测到尚未准备好使用附加程序。 一些附加器需要进行准备才能使用。在生命周期的方法是其中追加程序可以做初始化的地方。Log4j不会将事件路由到未处于STA
问题内容: 我经常听到人们说这是最好的做法之一,在记录时避免使用它。 我正在查看代码,以了解他们如何处理此问题,并认为他们正在做类似的事情。 这是方法的代码片段,它采用模式和参数并返回要记录的消息。 我不明白这种实现比使用串联更好。任何对此的见解将非常有帮助。 问题答案: 日志系统中格式字符串的好处是,日志系统可以决定是否必须进行字符串连接。 让我们以这些行为例: 只要此记录器的级别为debug或
问题内容: 我的log4j.properties文件- 我想在stdout上甚至显示DEBUG和TRACE消息,所以我更改了以下行 但是,当我在Tomcat控制台上查看日志回显时,我看不到任何变化,我仍然只看到INFO,WARN …消息。 问题答案: 好了,即使您将根记录器的名称设为TRACE,您的(指向INFO)也将覆盖petascope。*软件包的默认根记录器的TRACE,这就是您看不到任何D
问题内容: 我在J2SE下使用log4j。我已将其配置为对某种类型的日志事件使用邮件程序。当logger.error触发时,出现以下异常: 有人遇到过吗?我也包括所需的mail.jar库。 任何帮助表示赞赏。谢谢克里斯 问题答案: 我查看了的源代码,该错误基本上表示了它的意思。未设置名为“ java.home”的系统属性。根据for的javadoc ,该属性由JVM自动设置为java安装目录。 我
问题内容: 我试图在Log4J2中实现和配置自定义过滤器- 基于ThresholdFilter,但打算做更多。我已经看到了有关自定义追加程序的主题,这些主题遵循相同的插件注释语法,但是还没有找到有关自定义拟合程序的主题。 MyCustomFilter.java (基于ThresholdFilter) log4j2.xml LoggingRunner.java 配置语法似乎与Apache文档中的语法
问题内容: 我在Linux机器(RHEL 5.4)上使用Java 1.4.2。 我们的应用程序使用log4j进行日志记录。我希望某些附加程序可以创建文件名中包含主机名的文件。不应对主机名进行硬编码,而应使用类似于此处的系统属性(请参见$ {log4j.minutes})。 所以问题是系统属性中是否有主机名。根据此处,没有默认的主机名属性。 这意味着我需要从命令行(-D标志)的代码中添加主机名作为系