6.0及更高版本中的HAC日志记录配置

2020-09-09 09:31发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在以前的hybris版本中,在引入log4j2之前,应用程序中所有已声明的记录器都以hac记录配置自动显示,可以在其中设置记录级别。

默认情况下,自hybris 6.0起,它不会自动发生。

此功能是否被删除,或者是否有可能通过配置以某种方式启用它?

有数百个记录器,将所有记录器都列出在project.properties文件中是不合理且令人讨厌的。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在以前的hybris版本中,在引入log4j2之前,应用程序中所有已声明的记录器都以hac记录配置自动显示,可以在其中设置记录级别。

默认情况下,自hybris 6.0起,它不会自动发生。

此功能是否被删除,或者是否有可能通过配置以某种方式启用它?

有数百个记录器,将所有记录器都列出在project.properties文件中是不合理且令人讨厌的。

付费偷看设置
发送
17条回答
空代码
1楼-- · 2020-09-09 10:20

这是在使用食谱(b2c_acc)构建的6.1.0.2上进行的测试,因此local.properties中没有自定义项,也没有覆盖属性。 到目前为止,我发现的是以下属性:

  • log4j2.config.xml = hybris-log4j2.xml

是在project.properties中为以下扩展名设置的(找不到其他处于活动/启用状态的引用):

  • hybris \ bin \ ext-content \ cmswebservices \ project.properties

  • hybris \ bin \ ext-content \ smarteditwebservices \ project.properties

因此,除非在local.properties中进行了更改,否则您将使用以下默认Log4j2配置文件(此处是堆栈附带的):

  • \ hybris \ bin \ platform \ ext \ core \ resources \ hybris-log4j2.xml

如果查看以上(默认)Log4j2配置文件,您会发现在HAC中看到的记录器与该默认配置文件的记录器匹配。 如果您更改该文件,例如,仅使用rootLogger,则在启动它后将仅在HAC中找到rootLogger(请记住,仍然需要设置属性log4j2.config.xml = hybris-log4j2.xml)。

如果在上面提到的project.properties文件中禁用了属性(log4j2.config.xml),则没有任何变化,看来相同的记录器仍在HAC中弹出。

...因此,我只是从堆栈中删除了配置文件(hybris-log4j2.xml)以确保未加载该文件,然后禁用该属性并再次构建它,同样。 仍然找到相同的记录器...

现在在HAC中显示的记录器仍然相同,但是现在来自:

  • \ hybris \ bin \ platform \ project.properties

您会发现平台project.properties文件包含相同的记录器。

哎,真难
2楼-- · 2020-09-09 10:04

这意味着您需要在属性文件中用3行指定每个类,以便能够在hac中对其进行配置。 这似乎不是一个合适的解决方案。 在6.0之前的版本中,可以在不显式说明所有单个类的情况下指定日志级别。

jovirus
3楼-- · 2020-09-09 09:56

FYI,今天在Hybris JIRA中该错误的严重性已提高至严重( https://jira.hybris.com/browse/ECP-1231)。该错误在6.0中被发现,现在已经存在了将近7个月。

Doze时光
4楼-- · 2020-09-09 10:02

很显然,以上内容无法解释为什么除非明确定义,否则记录器不会显示。 我最好的猜测是,由于某种原因,HAC仅显示使用Log4j2样式道具或通过显式xml配置文件定义的内容。

日志记录似乎运行良好,所以我想其他人都已注册,但未在HAC中显示。

SC_Yao
5楼-- · 2020-09-09 09:55

我们已在一个项目中实现了可行的修复程序。 但是,此修复很丑陋,因为您需要修补/重新实现其中一个HAC类,而这些类不能通过Spring机制进行修补。 相信我,您不想知道我们是如何做到的。 ;-)

一周热门 更多>