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

java - Android - 清理自定义日志文件(logrotate)

我正在登录自定义日志文件以获取持久性日志信息。

在某些情况下,我的应用程序在我长时间无法访问的设备上。为了避免填满我的磁盘空间,我目前在超过10MB.

我知道对于网络服务器来说,有一个东西叫做logrotate. 它不断删除旧值并仍然附加新值。

知道如何在 Java 中为我的 Android 应用程序实现这一点吗?

在有人问我为什么不使用Logcat(执行此轮换)之前:我只想跟踪对我来说是必需的日志信息,而不是来自所有其他应用程序。Logcat 通常会过快地丢失重要信息。

谢谢!

0 投票
0 回答
400 浏览

nginx - Nginx PID 文件不一致

我见过一些类似的问题,但似乎没有一个能解决我遇到的这个确切问题。我在运行 awstats 更新 + 日志轮换时使用 Nginx pid 文件,以便我可以告诉进程关闭并重新打开日志文件。这是我见过的标准方式:kill -USR1 cat /usr/local/nginx/logs/nginx.pidhttp://wiki.nginx.org/LogRotation

但是,我的问题是有时 pid 文件会消失。发生这种情况时,日志轮换不会正确重新打开文件,并且 nginx 会继续写入相同的日志文件。我不知道为什么会发生这种情况,我通常必须执行完整的 nginx stop + nginx start 才能让它重新创建 pid 文件。它也不会定期发生。有时网络服务器会好几个月,然后突然 PID 文件会消失,然后日志将无法正确更新。这是其他人遇到过的吗?有什么想法可以尝试吗?

Nginx 版本:1.5.13 操作系统:CentOS 6.5

0 投票
4 回答
3359 浏览

python - 空记录处理程序 - 为什么记录 TimeRoatingFileHandler 不起作用

因此,我执行 logging.config.fileConfig 以从具有控制台和文件处理程序的文件配置设置我的日志记录。然后我做 logging.getLogger(name) 来获取我的记录器和日志。在某些时候,我希望文件处理程序的文件名更改,即日志轮换(由于 Windows 平台的一些问题,我不能使用时间轮换器)所以我调用 logger.handlers - 它显示一个空列表,所以我不能关闭它们!!但是,当我单步调试调试器时,它显然不是空的(当然没有它我将无法正确登录)

不知道这里发生了什么,我错过了什么?

感谢任何帮助。谢谢。

0 投票
1 回答
3234 浏览

macos - 使用 newsyslog 来轮换日志文件,但前提是它们有一定的大小

我在 OS X 10.9.4 上并尝试使用newsyslog来轮换我的应用程序开发日志文件。

更具体地说,我想每天轮换文件,但前提是它们不为空(newsyslog 会在它轮换的每个日志文件中写入一两行,所以假设我只想轮换至少 1kb 的日志)。

我创建了一个文件/etc/newsyslog.d/code.conf

我理解配置文件的手册页的方式是,size条件应该结合使用,因此只有在日志文件为 1kb 或更大时,when应在每晚午夜轮换日志文件。

不幸的是,这不是发生的事情。日志文件每晚都会轮换,无论它们只是来自 newsyslog 的轮换消息还是其他任何内容:

任何有关如何使这项工作的提示将不胜感激!

0 投票
1 回答
1063 浏览

ios - 如何在 iOS 7/8 上创建旋转文件记录器?

我正在开发一个 Beta iOS(7 和 8)应用程序,该应用程序将很快交付给测试人员。

我想要一个send feedback按钮,它将向开发人员发送关于出错的人工描述以及最近的日志文件。

在此处输入图像描述

由于写入日志文件会占用大量空间,因此我想根据文件大小轮换文件,例如Linux logrotate 实用程序。也就是说,将前 N 条日志行写入 a app.log,然后重命名app.logapp.log.1,删除旧的app.log.1并继续写入新的app.log

这样,我2N在 iOS 文件系统和我的错误报告中最多会有日志行。

在 iOS 上是否有用于文件日志轮换的开源、生产就绪工具?

0 投票
1 回答
848 浏览

python - python中的RotatingFileHandler记录器打开了多少个文件描述符?

假设我使用 RotatingFileHandler 使用 python 创建了一个旋转文件记录器。我将文件数设置为 10,每个文件大小设置为 1 MB。我的问题与轮换是如何发生的有关。是否通过保持所有 10 个文件打开并确保在将一行添加到最新文件时修改每个文件的内容来进行轮换?如果是这样,那么应该至少有 10 个文件描述符始终处于打开状态。

假设每个文件有 100 KB 块行,所以每个文件只有 10 行。因此,当通过此旋转日志处理程序插入另一行(100 KB)时,每个文件的最后一行不会放在下一个文件的顶部(从新到旧)吗?所以保持所有文件描述符一直打开是有意义的,不是吗?

0 投票
0 回答
614 浏览

ruby-on-rails - Best way to rotate Rails log files daily in 2015

What is the best way to rotate Ruby on Rails log files daily?

I saw posts in the past. They recommended using logrotate and enable copytruncate option to avoid restarting Rails.

However, logs are lost at small time slice between copying the file and truncating it.

My project requirement does not lose logs, so we chose cronolog with ruby's stdlib Logger. The code like the following:

It's mostly works correctly, but logs are mixed when logging data size more than PIPE_BUF that because using PIPE.

So what is recommended way to rotate logs in such situation?

0 投票
3 回答
13388 浏览

logging - 如何每天创建一个 uwsgi 日志文件?

我使用带有参数的 uwsgi --daemonize /logs/uwsgi.log

然而,这个文件变大了,我想把它分成更小的部分。最好每天一个。我已经为 nginx 做到了,使用日期变量很容易指定日志文件名。是否可以为 uwsgi 做同样的事情?

就像是:

或者是否有其他方法可以获得相同的结果,而无需过多参与其他过程?

0 投票
1 回答
305 浏览

java - 如何查找已在 Java 中移动/重命名的文件

我想对在文件移动/重命名后仍然存在的文件有某种文件句柄。这不一定是平台独立的,如果它只适用于 Java7+linux 就可以了,如果可以假设文件不会更改目录,那就更好了。

用例是我想编写一个类似于logstash-file-input的日志拖尾输入源,即我可以运行来拖尾文件的工具,即使当我旋转该文件(即移动/重命名)时拖尾应用程序已关闭,我希望能够在拖尾应用程序再次启动时找到该文件。

我查看了 BasicFileAttributes.fileKey 但我没有找到从 fileKey 到 File/Path 对象的任何方法。

有谁知道这是否可以做到?

最好的问候/托马斯

0 投票
1 回答
1198 浏览

c++ - 使用 Log4cpp 库的项目

我正在寻找一些使用 log4cpp 进行日志记录的项目。不幸的是,我找不到这个库的任何好的例子。
现在我有一个简单的工作示例,但我需要一些更复杂的示例(至少对我而言 ;-))示例,例如如何使用 log4cpp::Filter 或 log4cpp::LoggingEvent,因为我需要过滤功能。谢谢,