问题标签 [log-rotation]

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 回答
16948 浏览

java - Logback,设置每天最大历史文件

我为我的 logback 配置使用TimeBasedRollingPolicy和触发策略。SizeAndTimeBasedFNATP日志文件的翻转设置为每天发生,如果日志文件大小超过限制也会触发。

如果我TimeBasedRollingPolicy每天滚动执行 setMaxHistory(10) ,那么它将归档过去 10 天内的所有日志文件。但我想要的是每天在 SizeAndTimeBasedFNATP 上设置 maxHIstory。

这可以通过 logback 实现吗?

0 投票
2 回答
130 浏览

c++ - 制作一个旋转器的功能,可以在一天中的每一分钟创建一个时间戳

我有一个日志项目,我需要知道如何构建一个功能,以便旋转器在程序运行时每分钟检查一次,并为每分钟创建时间戳,只是为了将全天的时间戳存储到日志文件中,请帮忙。

谢谢

0 投票
1 回答
911 浏览

logging - Nginx 日志轮换正在发生,logrotation.d 中没有任何文件

我刚刚在基于 RPM 的 Linux 中编译并安装了 nginx。注意到访问日志和错误日志的日志轮换正在发生。但是没有/logrotation.d/对目录进行操作的文件/var/log/nginx/

我需要更改归档日志的文件名格式,但由于 logrotation.d 中没有文件,不知道要更改什么。

任何帮助将不胜感激。谢谢 :)

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 投票
2 回答
5969 浏览

qt - QPlainTextEdit 逐行截断历史

我有一个 GUI 应用程序,其主要部分是QPlainTextEdit。它用于显示应用程序的日志,因此相关的文本会逐行无限增长。

由于应用程序打算运行很长时间,我需要限制将为此日志分配的内存。因此,我希望有一些maxNumLinesmaxNumCharacters参数来确保在到达时将截断历史记录,即在添加新行时将删除标题行(也称为日志轮换)。

为了实现这一点,我找到了功能

因此,像这样未经测试的代码可能会成功:

这是从 中删除第一行的方法QPlainTextEdit吗?是否可能有其他 Qt Text GUI 元素更适合此任务(设置最大行数并在列表的开头截断),例如以某种方式显示QStringList我可以存储行的 a (我可以轻松地erase(0))?

或者 QPlainTextEdit 最终是否最终为相关 QString 的大小实现了这样的上限?

0 投票
1 回答
358 浏览

logging - 我可以让 Rails 3 将生产日志保存 90 天吗?

Rails 3 似乎会在一段时间后自动截断生产日志。我希望能够保存过去 90 天的生产日志,以便能够审核我的应用程序的行为。根据这个答案,旧的RailsLogger至少支持将日志分成不同的日子,如果不自动删除旧的,但Rails现在使用BufferedLogger不支持这些选项。

无论哪种方式,看起来我可能不得不求助于配置 Unixlogrotate来获得我想要的日志保留策略。这对我来说很好,但我还必须防止 Rails 自动截断日志,这样我就不会丢失任何东西,我不知道该怎么做。

是否有另一种与 Rails 一起使用的日志记录工具(可能是 gem),它可以在一个地方处理这一切?如果没有,我该如何防止BufferedLogger截断日志,以免妨碍它logrotate

0 投票
1 回答
147 浏览

bash - 如何在我的脚本轮换时获取日志?

我有一个脚本,我从 tomcat 获取日志并将其发送到我的云资源中。一切正常,但是当我的 tomcat 旋转日志时出现问题。

当日志轮换时,其前缀为日期(日志每天轮换)。由于我的脚本每半小时运行一次,因此在轮换时我可能会错过日志,因为我在示例中使用静态名称获取日志logfile.log

在旋转之前,文件将如下所示:

旋转后,它看起来像这样:

有没有办法摆脱这个问题?

编辑:

我的脚本:

提前致谢。

0 投票
1 回答
1209 浏览

logging - logrotate:为什么在轮换后重新加载服务器配置

我看到 nginx 和 apache 在它们的日志轮换后都发送了某种形式的重新加载信号。为什么是这样?我想知道,因为我正在为我自己的应用程序设置它,并且想知道如果日志在没有更新的情况下轮换,应用程序是否会因某种原因挂起。

0 投票
0 回答
2373 浏览

unix - logrotate 是复制当前文件还是重命名当前文件

我在网上阅读了几篇文章,但我仍然不明白 logrotate 是如何工作的。

我的配置文件如下:

我注意到每当 logrotate 启动时,我的主要服务性能都会下降一点。我试图找出原因。

我现在能想到两件事。

一种是 logrotate 实际上复制文件而不是重命名它们。这是真的?我知道 logrotate config 有一个名为 copy 的选项。如果我不设置该选项,logrotate 是否仍会复制文件?我的文件很大,每个> 2G。

另一件事是 HUP 信号导致我的服务性能下降。我会跟进的。

谢谢,杰瑞

0 投票
0 回答
689 浏览

ruby-on-rails-3 - Log File Rotation in Ruby on Rails

I am working on a website in Ruby on Rails and have enabled log rotation on the server with the reference of blog article.

I have written the following code in my /etc/logrotate.conf file.

But I still happen to get this error once in 2 weeks:

In this case I have to remove the log files manually which is a cause of worry. I have rechecked my settings.

Please suggest why this issue comes even after rotating log daily or how I can I rotate my logs more frequently or any better way to escape this error.

Many Thanks!!