如题 ,我在论坛找到不少教程都没有作用,官方文档奈何英语水平不够不太读的Spring明白
Spring 是5.0.2 Servlet为3.1 log4j版本为2.13 Spring MVC
在web.xml中添加过各种配置 例如
log4j2.xml里是这样设置的
<?xml version="1.0" encoding="UTF-8"?>
<!-- 设定日志的等级 当status=debug 可以查看log4j的装配过程 monitorInterval 指定log4j2自动重新配置的监测间隔时间,单位是秒 -->
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--status="WARN" :用于设置log4j2自身内部日志的信息输出级别,默认是OFF-->
<!--monitorInterval="30" :间隔秒数,自动检测配置文件的变更和重新配置本身-->
<Configuration status="info" monitorInterval="10">
<properties>
<!--自定义一些常量,之后使用${变量名}引用-->
<property name="filenameLog">/logs/payPlatform.log</property>
<property name="infoNameLog">/logs/info.log</property>
<property name="TEST_HOME">D:/Data</property>
</properties>
<!-- Appenders : 定义输出内容,输出格式,输出方式,日志保存策略等,常用其下三种标签[console,File,RollingFile]-->
<Appenders>
<!-- 配置输出到控制台 -->
<Console name="Console" target="SYSTEM_OUT">
<!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<!-- 输出日志的格式 -->
<PatternLayout pattern="[%d{HH:mm:ss.S}] [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!--File :同步输出日志到本地文件-->
<!-- 文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->
<!--append="false" :根据其下日志策略,每次清空文件重新输入日志,可用于测试-->
<File name="log" fileName="${filenameLog}" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
<DefaultRolloverStrategy max="10"/>
</File>
<!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
<RollingFile name="RollingFileInfo" fileName="${infoNameLog}"
filePattern="$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.log">
<!--ThresholdFilter :日志输出过滤-->
<!--level="info" :日志级别,onMatch="ACCEPT" :级别在info之上则接受,onMismatch="DENY" :级别在info之下则拒绝-->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
<!-- Policies :日志滚动策略-->
<Policies>
<!-- TimeBasedTriggeringPolicy :时间滚动策略,默认0点小时产生新的文件,interval="6" : 自定义文件滚动时间间隔,每隔6小时产生新文件, modulate="true" : 产生文件是否以0点偏移时间,即6点,12点,18点,0点-->
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<!-- SizeBasedTriggeringPolicy :文件大小滚动策略-->
<SizeBasedTriggeringPolicy size="100MB" />
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
<DefaultRolloverStrategy max="20" />
</RollingFile>
<!-- Warn输出到文件 -->
<RollingFile name="RollingFileWarn" fileName="${sys:catalina.home}/Warn.log"
filePattern="$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
<!-- Error输出到文件 -->
<RollingFile name="RollingFileError" fileName="${sys:catalina.home}/Error.log"
filePattern="$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</Appenders>
<!-- 定义logger,只有定义了logger并引入的appender,appender才会生效 -->
<Loggers>
<!-- 过滤掉spring和mybatis的一些无用的DEBUG信息 -->
<logger name="org.springframework" level="INFO"/>
<logger name="org.mybatis" level="INFO"/>
<logger name="RollingFileInfo" level="info" additivity="false">
<AppenderRef ref="RollingFileInfo" />
</logger>
<!-- Root中启用上面的配置 level设置输出的等级 -->
<Root level="all">
<!-- 输出到控制台 -->
<appender-ref ref="Console"/>
<!-- Info输出到文件 -->
<appender-ref ref="RollingFileInfo"/>
<!-- Warn输出到文件 -->
<appender-ref ref="RollingFileWarn"/>
<!-- Error输出到文件 -->
<appender-ref ref="RollingFileError"/>
</Root>
<!--AsyncLogger :异步日志,LOG4J有三种日志模式,全异步日志,混合模式,同步日志,性能从高到底,线程越多效率越高,也可以避免日志卡死线程情况发生-->
<!--additivity="false" : additivity设置事件是否在root logger输出,为了避免重复输出,可以在Logger 标签下设置additivity为”false”-->
<!-- <AsyncLogger name="AsyncLogger" level="trace" includeLocation="true" additivity="false">
<appender-ref ref="RollingFileError"/>
</AsyncLogger>-->
</Loggers>
</Configuration>
设置的绝对路径可以用 其他的都用不了 包括设置${sys:catalina.home} ${catalina.base} ${web:rootDir} 都不起效果
因为要部署在Linux服务器上 不能采用绝对路径的办法 该怎么写路径?