问题标签 [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 回答
292 浏览

python - 改进python tornado中的日志记录方法

我正在尝试在函数中记录操作,并且我编写了以下函数来根据响应类型(即信息、错误、调试和警告)记录对不同文件的响应。

我面临的问题是每次调用函数时都会打印两次响应。

例如:info.log

hello world hello world

谁能告诉我为什么会这样。所有日志文件都是这种情况。

谢谢

0 投票
1 回答
884 浏览

java - 带有常量标头的 Java 轮换日志

我制作了一些系统,现在我想在它运行时跟踪一些关于它的统计信息。我决定使用 TSV 表格来写下这些统计数据。在寻找现有的最佳库时(如果可以的话,我想避免自己实现它),我发现FileHandler库几乎正是我想要的。

由于统计信息将每秒收集一次,我想我需要某种文件处理程序提供的大小限制的日志文件轮换,但我仍然想念的,对我来说重要的是能够在所有日志文件中拥有恒定的标题.

所以我想在所有日志文件中自定义第一行旋转(包含 TSV 格式的列的含义),其余行将是真实的统计数字。

有谁知道如何做到这一点?我无法找到适合我的 lib 或其他类似问题。

另外,如果您知道其他一些可以完成此操作的库,我愿意放弃 FileHandler 以支持该库。

提前致谢!

编辑:所以根据@jmehrens 提供的答案,我制作了以下代码,它就像魅力一样!这是一个自定义格式化程序类:

这是工人代码:

以下是示例输出:

0 投票
1 回答
3875 浏览

linux - 如何仅根据文件大小进行 logrotate?

我有一个 logrotate 策略,它每天运行一次,因为它是 cron.daily 的一部分。我想在达到一定大小时触发文件的 logrotate。所以我正在寻找一种方法来使文件大小成为触发器,而不是每小时、每天或某个设定的时间间隔发生。有可能做这样的事情吗?

一个文件的示例(我有许多具有不同大小值的此类文件)

0 投票
1 回答
563 浏览

c++ - boost: text_file_backend 文件名和收集器目标

何时text_file_backend使用并collector设置,是在keywords::target目录中创建日志文件还是collector将旧日志文件移到那里?

如果collector移动它们,何时移动它们,collector在旧日志文件关闭并创建新日志文件后立即执行,还是在其他时刻?

同样,如果collector在某个时刻移动它们,新的日志文件(或多个文件)在一个地方,而旧的日志文件在另一个地方。假设我想collector删除非常旧的文件,有没有办法将日志文件留在创建它们的相同位置但删除非常旧的文件?

0 投票
1 回答
487 浏览

tomcat - 使用 logrotate 旋转 apache 日志

我的应用程序在 apache tomcat 上运行。我想为 apache 创建的日志配置 logrotate。

我的 logrotate 配置如下:

我刚刚意识到我不需要 apache 日志的 copytruncate 选项,因为 apache 似乎每天都会创建一个新的日志文件,并附加一个时间戳。

例如:localhost.2016-02-26.log

我希望 logrotate 进入并压缩以前的日志并删除它们(仅保留压缩文件)并保持当前日志不变。

附录:

刚刚发现 logrotate 不适合旋转其中包含时间戳的日志。我正在寻找可以使 logrotate 与此类日志或其他更适合旋转此类日志的旋转实用程序一起工作的方法。

0 投票
0 回答
447 浏览

logrotate - logrotate 按文件大小并保留尽可能多的旧文件直到 maxage

我希望按文件大小轮换日志并按年龄保留旧日志。maxage 参数检查旋转文件的年龄。但我正在寻找一种情况,当文件达到特定大小(例如 100k)时旋转文件并在特定天数(例如 7 天)内保留尽可能多的旧文件。

可能对日志文件的写入次数较少,并且可能在 7 天内只有一次轮换,或者您可以在一天内进行多次轮换。无论如何,我想从创建之日起将旧文件保留 7 天(在这种情况下)

0 投票
3 回答
2090 浏览

python - 日志轮换 - python 和 windows

(我已经搜索并没有找到这个问题的重复项,但很高兴被证明不是这样)。

我需要从一些 Python 代码中轮换日志。该代码在 Windows (Server 2008 R2) 上运行。

最初我使用TimedRotatingFileHandler(来自 Python 的 logging.handlers 包),但这并不像我们需要的那样工作,因为我知道它与多处理有关(subprocess.check_call 用于启动另一个应用程序)。

我已经检查了 ConcurrentLogHandler ,它看起来可能可以完成这项工作,但我有点担心它自 2013 年以来一直没有更新(尽管最近已经提出了问题)。

更新:一个开放的错误(自 2013 年以来)表明 ConcurrentLogHandler 不适用于 Python 2.7/Windows。在记录时,代码只是挂起。

是否有我应该使用的最佳实践Windows解决方案?

0 投票
2 回答
1692 浏览

java - 如何在 log4j2 中每次服务器关闭时轮换日志

现在我正在使用 log4j2 旋转日志,如果它达到 2000MB 并且基于时间,即每小时使用以下逻辑:-

我还想在服务器关闭时轮换日志。我必须添加什么配置到以下内容?

我使用 OnStartupTriggeringPolicy 在关机时轮换日志。但是在通过服务器重新启动发出单个请求后,日志会被轮换。

但是我希望在服务器关闭时轮换我的日志。有没有办法做到这一点?

0 投票
1 回答
360 浏览

python - 每次在 python 中轮换日志时执行一个操作

我想记录一行描述记录器创建的每个日志文件的记录信息。

目前我正在使用一个单独的记录器进程,它将一直运行。它从队列接收信息并将其写入日志。许多模块将信息传递到这个日志队列。

我当前的示例代码是:

每次轮换日志时,我都希望desc_string第一次写入日志文件。
我怎样才能做到这一点?

或者换句话说,如何在程序中知道日志何时轮换?

0 投票
0 回答
202 浏览

java - Hive2Hive:在服务器之间发送内容,修改和删除目标和源中的文件

我看到了 Hive2Hive 项目,我认为这是一个非常好的项目,我很感兴趣。我参与了一个项目,该项目必须将不同应用程序的文件保存在文件系统中,就像这个一样。 在此处查看图片

让我描述一下这个项目的结构: 2 个不同的服务器中有 2 个应用程序。

  1. 负责将一个文件夹的内容发送给一个 Collector 这个内容是文件的一个片段

  2. 仅在收集器询问时才发送信息

  3. 它监听 Co​​llector 并通过同一门发送内容
  4. 发送后,可能会删除或截断文件或仅此而已

  5. 它需要密钥(.ssh/id_rsa),如果需要,用户可以使用密钥进行上下文切换或用户切换,从而能够删除或截断文件

  6. 它只与一个收集器通信
  7. 它需要文件夹、搜索位置、包含列表、排除列表和操作列表这些列表是模式操作列表,决定文件是否将被删除或截断。

    收藏者:

  8. 将内容保存在文件系统中

  9. 知道,文件系统中保存了哪些内容
  10. 它可以连接到许多代理

这个应用程序是由“我们自己”开发的,但非常不可靠。

当我看到 hive2hive 时,我看到了许多有趣的功能:

我想无头运行应用程序,一个在后台运行的程序。

我有一些问题:

  1. 如何决定要同步哪些文件?我可以有一个由模式选择的文件列表,例如 *.log
  2. 如何从源服务器发送到目标服务器并保持版本控制?

  3. 是否可以使用密钥文件?大多数示例都使用用户凭据。我更喜欢密钥文件

  4. 我应该如何配置它?4.1。我应该有2个应用程序吗?一个在源中,另一个在目标中 4.2。我应该只有一份申请吗?它应该在哪里?来源或目的地

  5. 我可以保持相同的格式,多代理少收藏家吗?

我是唯一可以实现这个应用程序的人,因为我正在寻求帮助。

我想听听您的意见和建议。非常感谢您,最好的问候,

路易斯