我想做一些看起来非常简单的事情:只需通过简单实用程序类中的方法传递大量日志记录命令(可能是全部,但特别是WARN
级别ERROR
)。我特别想这样做,以便在测试期间我可以通过模拟执行此调用的方法来抑制实际输出到日志记录。
但是我不知道如何使用ch.qos.logback.classic.Logger
调用单个方法,使用Level
作为参数...显然我可以使用switch
基于此值的命令,但在某些日志记录框架中,有一两个方法可以让您传递记录Level
作为参数。不提供这个似乎有点“原始”。
该方法可能看起来有点像这样:
Logger.log( Level level, String msg )
之后
现在查看了“XY 问题”,我理解对这个问题的怀疑。动态日志记录被认为是不好的,至少在 Java 中(在 Python 中可能更少)......现在我知道并理解首选路线是适当地配置日志记录配置以进行测试。
不过,如果可以的话,有一个小问题:虽然我还没有在这个特定项目中实现这一点,但我通常发现“只是”将堆栈跟踪追溯到特定Thread
不足的开头,这就是 logback 所做的(Exceptions
通过在WARN
或ERROR
水平)。我计划实施一个系统来记录Threads
它们何时运行的“快照” new ...如果发生错误Threads
,则可以列出(直接回到应用程序的第一个开始)。Thread
如果您愿意,这是使用某些东西“处理”传出日志调用的另一个理由。我想如果我想实现这样的东西,我将不得不尝试以某种方式扩展 logback 的一些元素。