问题标签 [rollingfileappender]

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 投票
1 回答
6866 浏览

c# - TextWriterTraceListener 跟踪文件太大

我正在使用 C#System.Diagnostics.TextWriterTraceListener打印跟踪。但是跟踪文件变得太大(数百 MB)。我想改变 的行为TextWriterTraceListener,如果跟踪文件变大,它将输出写入另一个文件。例如,原始跟踪文件是'output1.txt',如果它变得大于100MB,那么TextWriterTraceListener 应该写入'output2.txt'。

你有没有遇到过类似的问题?有什么优雅的解决方案吗?

0 投票
3 回答
4076 浏览

c# - 将 Log4Net RollingFileAppender 设置为每周滚动

DatePattern字符串需要是可以SimpleDateFormatter 接受的东西。

不幸的是,这意味着,开箱即用,这不包括能够将边界设置为周数。在 C# 中有一些方法可以获取这个值,但是我们可以扩展SimpleDateFormatter或提供不同的实现IDateFormatter并使用它(甚至在自定义中RollingFileAppender)并不明显。

那么我们如何让 Log4NetRollingFileAppender每周滚动一次呢?

0 投票
1 回答
799 浏览

log4net - 在 WPF 应用程序中配置 log4net 以使用隔离存储

我想使用 log4net 的 RollingAppender 写入隔离存储,但我不知道如何配置 log4net 来做到这一点。需要明确的是,我正在尝试在已安装的 WPF 应用程序中执行此操作,因此我没有一些 Silverlight 用户已经发布的问题。

我认为我最好的机会是动态设置文件路径,如this answer中所述,Best way to dynamic set an appender file path,但当然您无权访问隔离存储的文件路径。

谁能确认是否可以设置 log4net RollingAppender 以使用隔离存储,如果可以,如何?

0 投票
4 回答
73105 浏览

log4j - 需要一个通过属性配置 log4j RollingFileAppender 的工作示例

我正在使用 log4j 进行日志记录,并使用属性文件进行配置。目前,我的日志文件太大(3.5 GB 对于日志文件来说太大了)。所以认为我需要使用 RollingFileAppender - 但是当我这样做时,日志文件继续变得过大。我相信我只是错误地配置了它;有没有人有配置 RollingFileAppender的工作示例?

作为记录,我当前的配置如下所示:

RollingFileAppender 的替代方案也是一个很好的解决方案。

0 投票
3 回答
3924 浏览

dynamic - 在 RollingFileAppender 中使用动态文件命名的 log4net 问题

我的配置文件中有 3 个附加程序,用于创建 3 种不同类型的日志。我通过设置全局上下文属性在 3 个附加程序中的每个附加程序中使用文件的动态命名。在某些情况下,我只需要为 1 个附加程序动态设置日志文件名。
当我只为 1 个附加程序设置文件名时,它会创建另一个名为“null”的文件,除了名称已动态设置的实际日志文件之外没有数据。我已经创建了配置文件,如图所示。

在 VB.NET 代码中,我将文件名设置为:

在这种情况下,它会创建“file1.log”以及另一个名为“null”的空文件。仅当我在运行时设置任一附加程序文件名时才会发生这种情况。任何帮助表示赞赏。

0 投票
1 回答
636 浏览

java - log4j Appender 被捕获的异常关闭

历史背景:这个问题最终不是我想象的那样。原因及解决方法如下,原贴留作参考。

我正在开发一个简单的框架,用于定期轮询目录中的 .properties 文件,然后执行 SQL 查询并根据它们的配置发送电子邮件。因为每个 .properties 文件都有相同的操作范围,所以它们都由同一个 Task 类解释。但由于它们各自代表不同的逻辑操作,它们各自获得单独的日志文件。

这是通过共享 log4j RollingFileAppender 的一个实例,并根据 .properties 文件中的值动态更改其输出文件来实现的。由于这是一个单线程应用程序,因此可以正常工作。

但是,我注意到在某些情况下,此 RollingFileAppender 将关闭,并且应用程序将不经意地继续运行,除非现在不进行日志记录。由于控制台输出,我只成功地捕捉到了一次,因为该服务通常作为 Linux 服务器上的后台进程运行。这是发生的事情:

1)StartScheduler,主类,每分钟创建一个新的TaskPoller实例。

2) TaskPoller 扫描目录,从每个 .properties 文件中加载一些信息,并确定是否应该运行它。它还有自己独立的 RollingFileAppender,它通过 Logger.getLogger(TaskPoller.class) 检索。如果应该运行一个任务,那么它会实例化一个任务对象,并传入要运行的特定 .properties 文件。

3) Task 得到它的 RollingFileAppender,然后调用 fileAppender.setFile("newtaskname.log") 和 fileAppender.activateOptions() 来改变输出文件的位置。然后,在它的执行过程中,会发生这样的事情:

发生的事情是,在 DBDAO.Connect() 期间,有时我会收到 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException (或来自加载的任何 jdbc 类的一些其他意外异常)。这不会被 Connect() 捕获,但会被 Execute() 捕获。

不知何故,这个过程会导致 Task 的 RollingFileAppender 关闭。我能想到的唯一对这种情况特别的事情,与其一致和稳定的正常操作相反,是抛出的异常没有被 Connect() 声明为抛出。但我认为这不会导致 log4j Appender 关闭。

所以我的问题是,什么可能导致这个附加程序意外关闭与其配置无关的方法?

--Edit-- 看起来我完全被误导了;问题出在 Quartz 和 log4j 之间的交互中,我用它来让 TaskPoller 每分钟触发一次。我还不完全理解它的原因,但是 [this solution][1] 似乎解决了这个问题。它只是直到现在才表现为一个观察到的问题,所以我认为它与最近发生的事情有关。

0 投票
5 回答
1803 浏览

log4net - 在写入时打开滚动日志文件

任何人都可以指向一个应用程序来显示/查看正在写入的滚动日志文件吗?

我知道那里有应用程序,但谷歌搜索只会给我关于写入/创建日志的问题。[这是 Windows,不是 Unix]

0 投票
1 回答
5443 浏览

java - 干净地强制 Log4j RollingFileAppender 在午夜后不久滚动?

Log4j RollingFileAppender 的正常行为是在第一条日志消息发生在不同的日期时滚动,但有些人会因为每个日期的空日志文件而感到温暖和模糊,即使没有发生任何事情。有没有办法强制它在午夜之后滚动而不将虚拟消息写入日志?

0 投票
1 回答
3160 浏览

logging - Log4j DailyRollingFileAppender

我有一个当前配置为每小时翻转的日志文件。首次创建时,它被称为 logfile.log,一旦滚动,它被重命名为 logfile.log.YYYY-MM-DD-HH。

我想要的是使用 logfile.log.YYYY-MM-DD-HH 命名约定而不是 logfile.log 立即创建日志文件。

有任何想法吗?

0 投票
1 回答
1672 浏览

time - 在 UTC 日期而不是服务器日期滚动文件

这是我的 log4net.xml 文件

日志日期以 UTC 为单位,但文件将滚动到服务器时间的第二天。这会导致数小时的日志记录在错误的文件中。

如何根据 UTC 时间使文件翻转?