1

tinylog 是否可以为多个应用程序(war)使用相同的配置文件,但根据 web.xml 中的显示名称编写日志?

现在,我们所有的 Web 应用程序都使用 log4j 并共享一个配置文件。日志文件在文件名中使用以下变量写入:

<RollingFile fileName="${web:servletContextName:-unknownContext}-${env:COMPUTERNAME:-unknownComputer}.%d{yyyy-MM-dd}.log" >
</RollingFile>

这意味着当我们的应用程序的显示名称为 svc1234_FancyService 并在 SERVER001 上运行时,日志将命名为:

svc1234_FancyServce-SERVER001.2022-01-04.log

可以使用 tinylog 2.4+ 复制此行为吗?

4

1 回答 1

1

相同的配置文件

您可以将 tinylog 配置文件放在文件系统的任何位置,并通过系统属性设置路径tinylog.configuration。tinylog 将自动使用在此系统属性中设置的日志文件。系统属性tinylog.configuration可以在您的web.xml文件中设置,也可以通过您的应用程序或 Web 服务器配置全局设置。例如,JBoss EAP 和 Wildfly 的全局配置文件是standalone.xml.

日志文件路径

tinylog 默认支持环境变量和日期模式。对于 servlet 上下文名称,您将需要一个自定义系统属性。

例子:

writer      = rolling file
writer.file = #{servlet.context.name:unknownContext}-${COMPUTERNAME:unknownComputer}.{date:yyyy-MM-dd}.log

servlet.context.name然后,您可以在文件中设置系统属性,web.xml例如。

于 2022-01-04T19:01:48.517 回答