log4j2获取JVM启动参数

来源:互联网 发布:数据库能分布式吗? 编辑:程序博客网 时间:2024/05/16 09:47

在log4j1.x版本如果想获取如下的JVM启动参数

Dlog.path.prefix=/export/home/tomcat/logs/apps/myApp -Ddeploy.project.id=2856 -Ddeploy.app.id=370 -Ddeploy.app.name=myApp


其中log.path.prefix是需要配置在log4j日志路径中的,在1.x版本可以使用${log.path.prefix}来获取如下:

log4j.appender.file.File=${log.path.prefix}/my_log.log


但是在log4j2.x版本中这样是获取不到路径的,正确的方法是:

 <property name="LOG_HOME">${sys:log.path.prefix}</property>


完整的线上的log4j2.xml配置如下,可参考:

<?xml version="1.0" encoding="UTF-8"?><configuration status="WARN">       <properties>              <!-- 日志路径 -->              <property name="LOG_HOME">${sys:log.path.prefix}</property>              <!-- INFO级别日志名称 -->              <property name="LOG_INFO_NAME">/app_log.log</property>              <!-- INFO级别备份日志名称 -->              <property name="BACKUP_INFO_NAME">app-%d{MM-dd-yyyy}-%i.log</property></span>              <!-- ERROR级别日志名称 -->              <property name="LOG_ERROR_NAME">/err.log</property>      <!-- ERROR级别备份日志名称-->              <property name="BACKUP_ERROR_NAME">app-err-%d{MM-dd-yyyy}-%i.log</property>       </properties>       <appenders>              <Console name="Console" target="SYSTEM_OUT">                     <PatternLayout pattern="[%p][%date{yyyy-MM-dd HH:mm:ss.SSS}]%msg[%thread]([%c:%line])%n"/>              </Console>              <RollingFile name="AllLog" fileName="${LOG_HOME}/${LOG_INFO_NAME}"                           filePattern="${LOG_HOME}/${BACKUP_INFO_NAME}">                     <PatternLayout pattern="[%p][%date{yyyy-MM-dd HH:mm:ss.SSS}]%msg[%thread]([%c:%line])%n"/>                     <SizeBasedTriggeringPolicy size="50MB"/>              </RollingFile>              <RollingFile name="ErrLog" fileName="${LOG_HOME}/${LOG_ERROR_NAME}"                           filePattern="${LOG_HOME}/${BACKUP_ERROR_NAME}">        <Filters>                       <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>                     </Filters>                     <PatternLayout pattern="[%p][%date{yyyy-MM-dd HH:mm:ss.SSS}]%msg[%thread]([%c:%line])%n"/>                     <SizeBasedTriggeringPolicy size="50MB"/>              </RollingFile>       </appenders>       <Loggers>              <logger name="java.sql" level="ERROR" additivity="false"/>              <logger name="java.sql.ResultSet" level="ERROR" additivity="false"/>              <logger name="com.ibatis" level="ERROR" additivity="false"/>              <logger name="org.apache" level="ERROR" additivity="false"/>              <logger name="org.apache.ibatis" level="ERROR" additivity="false"/>              <logger name="org.springframework" level="ERROR" additivity="false"/>              <logger name="com.mchange" level="ERROR" additivity="false"/>              <logger name="org.apache.commons" level="ERROR" additivity="false"/>              <root level="info">                    <appenderRef ref="AllLog"/>            <appenderRef ref="ErrLog"/>              </root>       </Loggers></configuration>


关于各种路径的获取方式,详情参考官方文档:

http://logging.apache.org/log4j/2.x/manual/lookups.html

1 0
原创粉丝点击