2

在 linux ubuntu 服务器上使用 karaf 2.2.9,我有一个 karaf 命令可以启动一些代码。这会在 karaf.log 中生成一些详细的功能日志。此命令定期执行(每 2 小时一次)。

我们要收集每次执行对应的日志。

我们已经做了什么:
我们有一个脚本外壳,它使用客户端 karaf 执行以下操作:

  1. 执行 log:clear ==> 这会放置一个标记,以防止将来任何 log:display 命令在此标记之前执行
  2. 执行我们的命令 ==> 这会在日志中写入内容
  3. 执行 log:display -n 0 ==> 这将获取上一个 log:clear 和 now 之间的日志
  4. 将结果写入文件以供以后统计和分析

所有这些每两个小时重复一次。

为了不限制过多的输出,我将 karaf/etc/org.apache.karaf.log.cfg 中的“size”参数修改为更高的值。

问题:
有时,输出可能非常丰富(当然,它越丰富,就越关键!)。
所以 :

  • 如果我将“size”参数设置得太低,则 log:display 不会占用所有必需的日志
  • 如果我将“大小”参数设置得太高,karaf 会因内存不足而挂起,
    我已经增加了 karaf xx 内存。“日志”命令的文档很差。事实上,没有解释这个日志系统是如何工作的(或者我找不到它)。

我的问题:
有没有办法增加一些东西,以便我可以在 log:clear 和 log:display 之间获取相当舒适的日志量?

当然,也可以考虑其他解决方案,例如完全重新制作日志记录方法或程序,但这比为已经运行的系统找到正确的参数要花费更多。

4

1 回答 1

2

Karaf 中使用的默认日志服务是ops4j pax logging

您可以使用文件 karaf/etc/org.ops4j.pax.logging.cfg 设置日志系统。这是一个类似 log4j 的配置文件。在这里您可以设置自己的附加程序和记录器,调整文件大小,备份索引等...

通过这种方式,您可以将特定的日志记录信息提取到不同的日志文件中。

于 2013-01-04T17:09:27.247 回答