问题标签 [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 投票
3 回答
6341 浏览

log4j - 两个 log4j 文件附加器可以写入同一个文件吗?

暂时忘记为什么你会做这样的事情的问题 - 如果出于某种原因,两个 FileAppenders 配置了相同的文件 - 这种设置会起作用吗?

0 投票
1 回答
5277 浏览

multithreading - Log4Net FileAppender 不是线程安全的?

我需要登录到文件,因为客户没有可以使用 log4net 登录的控制台。现在我读到 FileAppender 不是线程安全的。无论如何,有没有办法在注销不同线程的应用程序中记录到文件,或者什么是常见的替代方案?

0 投票
1 回答
910 浏览

log4j - log4j、fileappender 和 tomcat6 日志问题

我见过很多关于上述主题的问题,但没有一个能解决这个问题。我正在尝试使用 log4j 登录到 $CATALINA_BASE/logs/ 目录中的自定义文件。我配置了 log4j.xml 文件并将其复制到 $CATALINA_BASE/lib/ 目录中。

我使用以下几行来创建记录器 -

PatternLayout 布局 = new PatternLayout(); FileAppender appender= new FileAppender("filename.txt");

这就是我的问题所在。如何使 FileAppender 采用我在 log4j.xml 中配置的文件名?

我希望它会自动选择它,但是 FileAppender 没有不接受文件名的构造函数。

我是否必须阅读 log4j.xml 才能获得文件名?如果是这样,为什么我需要在 xml 中设置该属性?

任何帮助将不胜感激。

谢谢, - 瓦斯

0 投票
6 回答
9104 浏览

logging - Log4Net 和来自并行实例的日志记录

我在我的项目中使用 log4net 并且存在一个问题。该程序的主要功能需要很长时间,我使用日志记录来保存有关它的信息。我使用FileAppender将日志保存到文件。

我的应用程序位于共享(本地)文件夹中,并且可能有多个应用程序实例从一个路径运行。在这种情况下,我只能从第一个程序记录信息,我的应用程序的其他实例无法记录信息,因为 log file is locked

当我使用“log4net.Appender.FileAppender+MinimalLock”选项时,会出现信息丢失的情况。并非来自两个实例的所有日志都保存到文件中。

如何解决此问题并从并行实例中记录信息?当我使用“MinimalLock”选项时,性能下降又会怎样?

谢谢。希望得到您的帮助。

0 投票
2 回答
1783 浏览

.net - log4net - FileAppender 在文件开头写入新条目

是否可以在 log4net 中配置 FileAppender 在日志文件的开头添加新条目?目前它正在最后添加条目,阅读最新条目需要向下滚动整个日志。从头开始阅读会更舒服。

0 投票
3 回答
10563 浏览

c# - 写入具有多线程性能问题的 log4net FileAppender

TickZoom 是一个非常高性能的应用程序,它使用它自己的并行化库和多个 O/S 线程来平滑利用多核计算机。

该应用程序遇到了瓶颈,用户需要从单独的 O/S 线程将信息写入 LogAppender。

FileAppender 使用 MinimalLock 特性,以便每个线程可以锁定并写入文件,然后释放它以供下一个线程写入。

如果 MinimalLock 被禁用,log4net 会报告有关文件已被另一个进程(线程)锁定的错误。

log4net 执行此操作的更好方法是使用单个线程负责写入 FileAppender,而任何其他线程只需将它们的消息添加到队列中。

这样,可以禁用 MinimalLock 以大大提高日志记录的性能。

此外,该应用程序会执行大量 CPU 密集型工作,因此使用单独的线程写入文件也会提高性能,因此 CPU 不会等待 I/O 完成。

所以问题是,log4net 是否已经提供了这个功能?如果是这样,您如何启用对文件的线程写入?也许还有另一个更高级的附加程序?

如果没有,那么由于 log4net 已经包装在平台中,因此可以在 TickZoom 代码中为此目的实现单独的线程和队列。

真诚的,韦恩

编辑:

谢谢,似乎答案指向开发我们自己的解决方案,作为对 log4net 的某种扩展。他们清楚地表明 log4net 不会做这种事情。

此外,我们刚刚意识到我们可能正在“滥用”日志系统,该系统主要用于人类可读的消息,用于通知重要事件或调试信息。软件输出的这个特定部分仅真正用于验证系统准确性的自动化工具。

当然,我们也以“正常”的方式使用 log4net 进行调试、警告等。

但这些更像是“事务日志”,而不是调试或用户通知日志。更具体地说,这些日志没有必要直接供人类阅读。如有必要,某种“查看器”可以以 ASCII 格式显示内容。

因此,我们将计划将这些事务类型的日志写入高速二进制存储。

谢谢,下面的两个答案似乎都对开发我们自己的解决方案起到了很大的推动作用。

0 投票
2 回答
137 浏览

log4net - 通过 FileAppender 记录

这是一个简单的问题:

我正在尝试使用 log4net 将信息记录在文件中。我将 < file value="log-file.txt" /> 写入 app.config 的 appender 标记中。现在想知道 log-file.txt 的位置以及它是自动创建的还是我应该自己创建的。

我正在使用 c# - wpf

0 投票
2 回答
3203 浏览

java - Java logback FileAppender 文件模式

我有这样的附加程序。

我想 ${date} 和 ${thread} 是当前日期和当前线程名称。我该怎么做?

0 投票
5 回答
9211 浏览

c# - log4net fileappender 未在 Outlook ThisAddIn.cs 中创建 log-file.txt

我看不出这里有什么问题。我只想让 log4net 使用我的 Outlook 插件写入日志文件。我的app.config文件中有以下内容:

以下是我的启动类 ThisAddIn.cs 中的相关语句(评论显示我尝试过的变体):

在我对此的研究中,它应该写入我的 project/bin/Debug 文件夹中名为 log-file.txt 的文件,但我没有看到任何创建。当我使用调试器进入代码时,日志对象的方法似乎可以毫无怨言地工作。我还尝试了以下文件的绝对规范,但同样缺乏结果:

有人能发现我的错误吗?

0 投票
0 回答
845 浏览

date - log4j FileAppender 使用 FileDatePatternConverter

尝试在配置中使用文件名模式,例如:

这不起作用。什么是正确的语法?