在Tomcat中设置Log4j的系统属性

woobm2wo  于 2022-11-06  发布在  其他
关注(0)|答案(3)|浏览(190)

从这个article开始,要启用Log4j 1.2桥,您应该
1.将系统属性“log4j1.compatibility”的值设置为“true”。Log4j 2会将log4j.properties、log4j-test.properties、log4j.xml和log4j-test.xml添加到它在类路径上搜索的配置文件中。
1.将Log4j 1系统属性“log4j.configuration”设置为log4j 1配置文件的位置。这些文件的文件扩展名必须为“.properties”或“.xml”。
但是如果我的类在Tomcat 8. 5下运行,如何设置system属性呢?

lyfkaqu1

lyfkaqu11#

首先你需要了解什么是系统属性。

然后,如果您关心的只是如何添加一个system property on tomcat,就像经典的ram增量一样,您只需要在tomcat的某个脚本上将key=value添加到JAVA_OPTSCATALINA_OPTS

-Dlog4j1.compatibility=true

如果你不想改变默认的tomcat文件,你可以在bin文件夹中创建setenv.sh,并添加如下内容:


# !/bin/sh

MIN_MEMORY="384m"
MAX_MEMORY="768m"
LOG4J_BRIDGE="-Dlog4j1.compatibility=true"

JAVA_OPTS="-Xms${MIN_MEMORY} -Xmx${MAX_MEMORY} ${LOG4J_BRIDGE}  ${JAVA_OPTS}"

基本上雄猫说我们:如果您想添加、更改或覆盖特殊的tomcat设置,请将它们添加到文件setenv.sh中,我将在启动前加载该变量。
下面是一些setenv.sh示例,以查看更多特殊的java/tomcat系统属性和环境变量:

jv2fixgn

jv2fixgn2#

每当Log4j文档提到 “系统属性” 时,它实际上指的是任何可用的属性源(参见System properties部分)。
如果要为所有Java应用程序全局设置log4j.configuration**,请设置环境变量LOG4J_CONFIGURATION
如果要为Tomcat上运行的所有应用程序设置该属性,请通过以下任一方法设置Java系统属性:

  • -Dlog4j.configuration=...选项传递给JVM,如JRichardsz's answer中所示。
  • 将system属性添加到$CATALINA_BASE/conf/catalina.properties(Tomcat在建立自己的日志记录系统之后提供此属性)(请参见this question),
  • 将system属性添加到Tomcat服务器类路径中的log4j2.system.properties文件中(例如$CATALINA_BASE/lib/log4j2.system.properties),该文件在启动时由Log4j提供(参见源代码)。将这样的文件放入应用程序中是不好的做法,因为该文件的内容最终会出现在Java的system属性中。

如果您希望仅为您的应用程序设置该属性,请将其放在应用程序类路径中的log4j2.component.properties文件中。

fruv7luv

fruv7luv3#

提醒一下,如果你在Windows中将Tomcat作为服务运行,你可以在tomcat8w.exe应用程序中设置Java选项。

相关问题