需要一个具有自定义标签和过滤功能的良好日志库

时间:2013-08-07 07:29:28

标签: java logging

我想编写一个GUI应用程序,它有一个很大的控件,显示日志记录的输出。

它会有一个下拉菜单来过滤它。

因此,我需要找到一个java的Logging库,允许我:

  1. 创建一个自定义类来与输出接口,以便我可以将其重定向到我的GUI控件

  2. 请允许我为我正在记录的内容分配自定义标记...

    e.g。 log(“abc”,“它是星期二”)

    e.g。 log(“def”,“它是2013”​​)

    e.g。 log(“ghi”,“logging is tedious”)

  3. 这是可选的,但我真的很想...能够根据这些标签的多个进行过滤...例如显示“abc”和“def”的输出,但不显示“ghi”的输出

  4. 有什么建议吗?并且,如果可以,请列出建议库可以使用的任何其他原因。

    感谢。

3 个答案:

答案 0 :(得分:3)

查看Slf4J + Logback。 Slf4j是一个抽象的日志记录API,许多(如果不是最多)OS项目使用,Logback是IMHO最好的日志记录实现。

Slf4J支持Markers,可用于标记日志输出。

Logback支持高级过滤配置:http://logback.qos.ch/manual/filters.html

您可以创建自己的Appender以将数据发送到任何输出源。

通常,您可以使用记录器的层次结构(例如org.myapp.abc,org.myapp.performance等)来组织输出。

答案 1 :(得分:1)

结合使用SLF4J + Logback

  1. 您可以为此目的创建自定义appender。我甚至记得有人开发了类似的GUI,你可以使用

  2. SLF4J中的标记似乎是执行“标记”的好选择

  3. 是的,SLF4J + Logback允许您根据日志事件中附加的标记进行过滤

答案 2 :(得分:0)

根据您愿意编写多少代码,您可以使用java SE logger执行此操作:

Custom Log Level

您可以简单地创建所需tpye的记录器并使用它们,而其他功能则使用正则表达式。

这不是最简单的方法,但您可能拥有所需的所有控件。

相关问题