java - Apache karaf - 如何记录 :display a 'lot' of information?

标签 java logging osgi apache-karaf

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

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

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

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

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

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

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

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

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

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

最佳答案

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

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

这样您就可以将特定的日志记录信息提取到不同的日志文件中。

关于java - Apache karaf - 如何记录 :display a 'lot' of information?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161224/

相关文章:

osgi - 考虑可扩展性的基于组件的应用程序 : OSGi or Akka?

osgi - 功能 :repo-add and feature:install in Apache Felix 的等效项

java - 在 OSGI 环境中 com.hazelcast.nio.serialization.HazelcastSerializationException

java - 我在 Eclipse 中制作了一个简单的 Spring MVC 应用程序。它开始出现注释问题

java - 调用paintComponent的正确方法是什么?

java - 更改使用 switch 语句的文本菜单上的输出

c# - 企业库记录 block 滚动平面文件不写入文件

java - 使用 Twitter4j 转发并发表评论

bash - 如何在 shell 脚本中记录带有时间戳的 echo 语句

logging - Apache 电锯的继任者?