- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在为我的 Java 应用程序设置一个标准的 logrotate 风格的 Log4j 记录器。为此,我有几个 RollingFileAppender
(一个用于项目的每个“子单元”)输出到应用程序文件夹中的日志文件。在滚动到 100MB 之前,我已经设置了大小限制。在 Linux 上,这非常有效,日志在达到 100 MB 后滚动。
但是,在 Windows 上,日志文件只会不断增长,不会滚动更新。
我已阅读 this Stackoverflow post同一 JVM(或多个 JVM)上的多个 Java 应用程序使用相同的日志文件将导致 Log4j 翻转失败,因为多个进程的文件描述符打开到该文件 - 但在我的情况下,这显然不是问题,因为我正在使用单个 单个 JVM 上的 Java 应用程序。
请注意,日志文件未在任何其他进程中打开。
任何人都可以更深入地了解可能导致此问题的原因/建议解决方法吗?
最佳答案
根据 The Complete Log4j Manual作者:Ceki Gülcü:
Can multiple appenders running in the same JVM log to the same file?
The answer is no. For performance and other technical reasons, log4j does not perform any synchronization between appenders. Having multiple appenders in the same JVM logging to the same file is not much different from having multiple appenders in different JVMs logging to the same file.
鉴于上述情况,一种解决方案是创建一个 RollingFileAppender
并将其附加到根记录器,即
// Set up the RollingFileAppender
RollingFileAppender rollingAppender = new RollingFileAppender();
rollingAppender.setFile(logfileURL);
... (set up your appender here)
// Attach it to the root logger
LogManager.getRootLogger().addAppender(rollingAppender);
Log4j 现在没有多文件描述符问题,并将所有来源的所有内容记录到一个日志文件中。
关于java - Log4j RollingFileAppender 在 Linux 上滚动,但在 Windows 上不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35797218/
有人能说出这些东西有什么不同吗?此外,我无法理解,如果 DailyRollingFileAppender 存在,为什么需要使用 TimeBasedRollingPolicy ? 最佳答案 org.ap
我有一个在单个服务器上运行的 WCF 服务,使用 Log4net 通过 INFO 和 WARN 级别的日志条目跟踪使用情况。使用具有以下非常标准配置的 RollingFileAppender:
典型的 logback appender 配置是 FILEPATH.log FILEPATH.%d{yyyy-MM-dd-HH}.log 24
使用配置: 我可以获得名为“Mylog20120529.log”的历史日志。 我想知道我是否可以获得名为“20120529.log”的日志。 感谢大家 最佳答案 在这里应用一个技巧,它将完成工作。
使用系统属性变量创建 RollingFileAppender 时出现以下错误。 ERROR Unable to invoke factory method in class class org.apa
我的 tomcat Web 应用程序有以下 log4j.xml 文件:
我正在使用 Log4Net 登录我编写的应用程序。为了写入日志文件,我使用了具有 5 个备份和最大文件大小为 250KB 的 RollingFileAppender。 我想做的是让用户有机会在发生崩溃
是否有任何流行的 Java 日志记录框架支持滚动文件附加器,我可以将其配置为每天滚动,并删除任何超过一定天数的日志文件?我知道我可以使用滚动文件附加程序和 cron,但想知道是否有人知道可以同时执行这
是否可以将 log4net 配置为每小时滚动文件?如果没有 - 有关如何使用所需功能覆盖 RollingFileAppender 以制作 HourlyRollingFileAppender 的任何提示
我正在使用RollingFileAppender和SizerollingStyle。默认情况下,它会创建带有编号扩展名的备份文件,这让我抓狂。是否可以更改它,使其始终使用定义的扩展名(例如 .txt
我们在开发和生产计算机上发现一个间歇性问题,即我们的日志文件未记录到。 当使用 Visual Studio 进行开发和调试时,我们在 VS 输出窗口中收到以下 log4net 错误消息: log4ne
使用 Log4j2 库版本 2.9.1。 我正在尝试以编程方式创建RollingFileAppender: RollingFileAppender appender = RollingFileAppe
当前版本的 Log4net 是否有办法创建具有复合滚动样式的 RollingFileAppender,其中滚动文件始终保留给定的扩展名(在我的情况下为 .log)? 我想要的格式示例: MyLog.l
我在 Web 项目中使用 log4net (v1.2.9.0)。一切正常,但几周后 RollingFileAppender 停止滚动。取而代之的是,每条日志消息都附加到同一个文件,因此现在这个文件已经
我正在以编程方式在 log4net 中配置 RollingFileAppender。我目前有这样的东西: RollingFileAppender fa = new RollingFileAppende
我有一个滚动文件附加器,它每天晚上滚动文件。但是,当它滚动时,新文件只有一个日志条目。似乎文件不再附加日志条目。如果我重新启动服务,它会正确记录。 这是我的设置:
我怎样才能创建一个 RollingFileAppender在接受谨慎标志的 Logback 中,还允许我指定日志文件的位置? 我尝试了以下操作,但正如我从文档中了解到的,logback 不支持 fil
虽然我已经阅读了有关此问题的多个其他问题和答案,但我没有找到答案,希望得到任何帮助。 public static void rerouteAppenderToFile(File file, Logge
您好,我现在使用 log4net 有一段时间了。这是我的记录器: public static class LoggerSetup { private static RollingFileApp
我有两个上下文在同一个 JVM 和 Tomcat 实例中运行,我想使用 logback RollingFileAppender 写入同一个日志文件。如果我使用相同的文件,logback Rolling
我是一名优秀的程序员,十分优秀!