繁体   English   中英

Log4j2 中的功能级别可配置记录器启用

[英]Functionality level configurable logger enable in Log4j2

我想在我的应用程序中实现一个功能级别的记录器。 因此,调试所需的日志何时何地我可以打开并开始记录的活动。 例如,我只想为注册功能启用日志记录。

我不确定这是否可能,但我的要求就是这样。 如果可能,请提供解决方案或对此的任何见解。

如果您使用 slf4j/log4j API,这是一个您可以“免费”获得的功能。 如果您遵循为每个类创建记录器的标准做法,则通过如下一行:

static Logger log = LoggerFactory.getLogger(UserRegistration.class);

并将该记录器用于该类中的所有日志记录。 您还可以为每个日志记录调用(WARN、INFO、DEBUG 等)选择适当的日志级别。 然后你可以在你的日志配置文件中为一个类调高/调低日志级别,如下所示:

<logger name="com.mycompany.util.registration.UserRegistration"><level value="DEBUG"/></logger>

您还可以使用如下一行将整个模块的日志记录级别调高/调低:

<logger name="com.mycompany.util.registration"><level value="DEBUG"/></logger>

您可以使用像这样的配置行来打开某些日志调用,方法是将它们提升到您设置的默认日志级别之上。 您可以使用以下内容设置默认日志级别:

<root><level value="WARN" /></root>

因此,仅使用这些行,您只会获得大部分代码的 WARN 级别日志记录,但对于该模块或类文件,您还将获得 INFO 和 DEBUG 级别日志记录。

你可以做更复杂的事情,比如将代码的某些部分的日志发送到一个特殊的日志文件。 当您说您只想记录“注册功能”时,也许这就是您所谈论的内容。 您可以设置日志记录配置,以便仅将“注册”中涉及的类发送到特殊文件。

主要的一点是你不需要提前考虑太多。 您只需将每个类的名称附加到该类中进行的所有日志记录调用,并为每个日志记录调用选择适当的日志级别(WARN、INFO、DEBUG),然后您可以稍后通过日志配置文件决定您的想看还是不想看,以及您想要记录信息的位置。

您可以使用 API 调用在程序首次启动时或什至在运行时更动态地配置日志记录。 再次强调,重点是您不要提前考虑要查看代码的哪些部分的详细日志记录。 您只需将日志调用放在任何地方,然后决定您稍后实际看到哪些输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM