问题标签 [fileappender]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
670 浏览

java - log4j:Appender 打印日志 Statements

您好先生:当服务器启动时,日志文件打印输出语句..我如何在我自己的文件中打印日志文件?

0 投票
2 回答
6611 浏览

logging - 使 log4j DailyRollingFileAppender 翻转日期或大小,以先到者为准

我知道 log4j 提供 RollingFileAppender 和 DailyRollingFileAppender 类,但是 DailyRollingFileAppender 不支持 MaxFileSize 属性。

如何调整 log4j 的行为,以便它可以以如下方式登录:滚动策略基于时间段(文件名附加 DatePattern),如 DailyRollingFileAppender 和 MaxFileSize(如 RollingFileAppender)?

例子:

  • 日志文件每小时滚动一次(文件名将附加时间戳,例如 YYYY-MM-DD_HH-MM-SS(通常 MM 和 SS 将为“00”和“00”)

  • maxFileSize 限制为 1MB

  • 每小时翻滚周期的两个检查点期间,如果发生超过 maxFileSize 的事件,日志文件也应该翻滚,(这意味着分钟和秒戳将采用与“00”不同的值)

0 投票
0 回答
2457 浏览

c#-4.0 - 以编程方式配置 log4net

我在尝试正确配置 log4net 时遇到了最糟糕的情况。首先,我需要提供一些关于我到目前为止(并且成功地)使用它的背景。

我的应用程序有一个 log4net 配置文件,它定义了它应该记录所有数据的 FileAppender。我所有的程序集都有一个ILog成员变量,并将其设置为LogManager.GetLogger( typeof( myclass)),其中myclass是正在记录的类。

一切都像这样工作得很好。

现在我还有一个使用方式略有不同的程序集。它可以被实例化多次,要求是每个实例都记录到自己的文件中。我能够让它以编程方式工作,并放弃 logging.xml 文件。

这也很好用。现在问题来了:上面的程序集使用了另一个也使用 log4net 的程序集。但是,该程序集预计已经配置了一个记录器以供使用,显然我以编程方式设置 log4net 的方式是阻止它工作。

我启用了内部 log4net 调试,并且我看到的错误消息非常明确地说明了该错误,但我不确定如何(最好)解决问题:

我假设创建了记录器,因为即使我明确使用LoggerFactory创建“test_logger”记录器,我也会遇到相同的错误。因此,只需弄清楚如何为该记录器创建附加程序。我尝试使用以前的代码FileAppender为此记录器创建一个,但即使代码运行,我也会收到相同的错误。

任何人都可以为我建议一些事情来尝试让它发挥作用吗?

编辑——我应该澄清一下,我真的希望所有日志消息都进入由测试应用程序创建的 FileAppender。我想避免有单独的文件(每个程序集一个)。

0 投票
1 回答
5069 浏览

log4j - 当 logrotate 旋转日志文件时,log4j fileappender 不会切换到新文件

语境:

我想使用 log4j 将与审计相关的日志写入特定的日志文件,比如 audit.log。我不想使用 syslogappender(基于 udp),因为我不想容忍数据丢失。另外,当文件达到一定大小时,我正在使用 logrotate 来轮换 audit.log。

问题:

我遇到的是,当 logrotate 将文件 audit.log 旋转到 audit.log.1 时,log4j 继续写入 audit.log.1 而不是写入 audit.log。

可能的方法:

  1. 我知道我可以使用 rollingfileappender 进行日志轮换,而不是使用 logrotate,所以当 rollingfileappender 滚动文件时,它会毫不费力地切换到新文件。但是我不能使用 rollingfileappender 的原因是我想使用 logrotate 的 post rotate 功能在旋转发生后触发一些rollingfileappender 无法提供的脚本。

  2. 我能想到的另一种绝望的方法是自己编写一个 log4j 自定义的 appender 来关闭日志文件(audit.log.1)并在检测到文件被轮换时打开新的(audit.log)。

  3. 我从未使用过 ExternallyRolledFileAppender,但如果可以使用 logrotate post rotate 将信号发送到 ExternallyRolledFileAppender 并使 log4j 知道文件已旋转,并开始写入新文件?

问题:

只是想知道是否已经发明/编写了一些像这样的附加程序?还是我有其他选择来解决这个问题?

0 投票
5 回答
6054 浏览

java - Log4j FileAppender 重新创建已删除的文件

我在我正在从事的项目中使用 Log4j 作为日志记录框架。我有以下情况: Log4j 被配置为将日志写入日志文件。在某些时候,此日志文件被复制到另一个目的地并被删除。日志框架继续工作,但日志没有写入日志文件,因为它被删除了。有没有办法告诉 Log4j 重新创建文件并继续将日志写入日志文件。

最好的问候,拉希德

0 投票
2 回答
735 浏览

scala - 添加 Appender 不起作用

我正在尝试获取记录器并向其添加特定的附加程序。我的代码非常简单,但我不知道如何让它工作。

我在这里收到错误

我不知道这个错误是什么意思以及如何解决它。有人能帮我吗?

编辑 :

我试着按照德雷辛所说的去做。我无法扩展接口并定义功能。只有三个函数,setName、getName 和 doAppend。我不确定如何定义这些功能。同时我尝试了一些东西并删除了错误。请查看代码,让我知道我所做的是否有意义。

我知道使用 asInstanceOf 不是一种聪明的编码方式,但现在我想完成这项工作。当我执行这段代码时,我得到了我想要登录的文件,但里面没有日志。我检查了级别错误,但事实并非如此。我相信编码器/布局有问题。我不知道如何解决它。有人可以告诉我如何扩展类和应用函数或者这个新代码有什么问题吗?

0 投票
2 回答
391 浏览

java - Java 用于单独程序参数的单独日志文件

我有一个文件,它根据传递给它的命令行参数将 SMS 发送到不同的移动网络。沃达丰、3 网络、T-Mobile、O2.. 等。所以,当争论通过时

现在,我想为单独的网络创建一个单独的日志文件,这样我就可以根据移动网络分别获得日志信息、调试消息。

因为,我只有一个文件 SMSDaemon 我已经尝试了以下但它没有写入任何文件。它只写入已在 log4j.properties 文件中定义的文件。所以,我很困惑在 log4j.properties 中写什么以及在这个 java 文件中写什么?

在 log4j.properties 文件中写入以下内容。所有日志都写入此属性中定义的 network.log 文件。这不符合我的要求。我需要在 SMSDaemon setLogProps 方法中定义的单独网络的单独日志。

请建议。

提前致谢。

0 投票
1 回答
1675 浏览

log4j - log4j 从类中隔离某个级别

我想问一些关于 log4j 的问题。我在activemq上有这个log4j的配置文件。我的问题是我想记录我拥有的每个类的所有 INFO 级别消息,但我想将“TransportConnection”类中的所有 DEBUG 级别消息记录到不同的文件中,同时只记录所有更大的消息或等于 WARN 级别,发送到 rootLogger。

此配置的问题是我从 rootLogger 中的“TransportConnection”类记录了 INFO 级别的消息。我只想将 WARN 及以上级别传递给 rootLogger。

我不想为“out”附加程序设置阈值,因为我想要来自其他类的 INFO 级别消息。

0 投票
2 回答
4535 浏览

java - 如何为所有类配置 log4j fileappender?

在我的应用程序中,我读取了一个输入文件(例如 myFile1.txt)并创建了一个具有相同名称的输出文件(例如 myFile2log)。重点是输入文件将在 java 应用程序中读取,而不是作为命令行参数给出。因此需要在应用程序中设置一个附加程序,例如

这就是问题所在:如果我执行上述操作,自定义文件附加程序仅适用于定义文件附加程序的特定类,但不适用于任何其他类。因此,“RandomClass”的输出不会写入此日志文件,但这是必需的。我怎样才能做到这一点?

0 投票
2 回答
1665 浏览

logback - 如何更改 logback 的 FileAppender 使用的 BufferedOutputStream 的底层缓冲区大小?

我们使用 logback 作为我们的日志框架。我们注意到 FileAppender 使用由 BufferedOutputStream 支持的 ResilientFileOutputStream。我们想知道是否有办法配置这个 BufferedOutputStream 实例的缓冲区大小,以便我们可以调整 logback 的性能。

谢谢