点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
Hybris支持在类级别控制日志级别。 例如,如果我编写一个新类(DefaultYsaperpreturnprocessService.java),那么要从该类控制该类的日志,我需要在project.properties或local.properties中定义日志详细信息,并且该类也应具有这样的记录器。
私有静态最终Logger LOG = Logger.getLogger(DefaultYsaperpreturnprocessService.class);
上面课程的属性
log4j2.logger.helloController.name = com.sap.hybris.service.impl.DefaultYsaperpreturnprocessService
log4j2.logger.helloController.level =调试
log4j2.logger.helloController.appenderRef.stdout.ref = STDOUT
如果我要编写10个类,是否需要像上面在属性文件中那样为每个类定义日志,或者是否可以在包级别定义一些东西,以便所有类都可以在HAC中控制?/p>
当类分布在多个程序包中时,您要做的是在配置中使用名称而不是程序包:
log4j2.logger.test.name =测试
然后将使用的所有类
Logger.getLogger(" Test");
将使用相同的记录器。如果10个类位于同一包中,则可以使用:
log4j2.logger.test.name = com.package.test
并使用
Logger.getLogger(Class1.class);调用记录器。 Logger.getLogger(" Class2.class"); ....
假定Class1,Class2,...位于包com.package.test中。第一种方法 允许对位于相同或不同程序包中的一堆类仅执行一个log4j2配置。 "测试"是记录器的名称,可以是您想要的任何名称。 因此,您可以使用Logger.getLogger(" Test");定义记录器" Test"; 您将可以在不同的类别中使用该单个记录器。 使用这两种不同的方法,您可以为特定的类,特定的程序包或一堆类提供记录器,因此它应该回答所有可能的用例。
我认为,您也可以在扩展级别添加它,以便该扩展中的所有类都遵循相同的日志记录规则。
log4j2.logger.myprojectcore.name = com.myproject.core log4j2.logger.myprojectcore.level =信息 log4j2.logger.myprojectcore.appenderRef.stdout.ref = STDOUT
感谢您的回复。 我尝试了您所说的内容,即使这些类位于不同的程序包中,它也可以正常工作。
一周热门 更多>