我想编写一个GUI应用程序,它有一个很大的控件,显示日志记录的输出。
它会有一个下拉菜单来过滤它。
因此,我需要找到一个java的Logging库,允许我:
创建一个自定义类来与输出接口,以便我可以将其重定向到我的GUI控件
请允许我为我正在记录的内容分配自定义标记...
e.g。 log(“abc”,“它是星期二”)
e.g。 log(“def”,“它是2013”)
e.g。 log(“ghi”,“logging is tedious”)
这是可选的,但我真的很想...能够根据这些标签的多个进行过滤...例如显示“abc”和“def”的输出,但不显示“ghi”的输出
有什么建议吗?并且,如果可以,请列出建议库可以使用的任何其他原因。
感谢。
答案 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
您可以为此目的创建自定义appender。我甚至记得有人开发了类似的GUI,你可以使用
SLF4J中的标记似乎是执行“标记”的好选择
是的,SLF4J + Logback允许您根据日志事件中附加的标记进行过滤
答案 2 :(得分:0)
根据您愿意编写多少代码,您可以使用java SE logger执行此操作:
您可以简单地创建所需tpye的记录器并使用它们,而其他功能则使用正则表达式。
这不是最简单的方法,但您可能拥有所需的所有控件。