Web环境使用Lo4j2

今天在web环境下使用log4j2出现了一个错误找不到路径问题,log4j2配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"> <!-- 这个status是控制系统信息的输出级别 -->
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">  <!-- 将日志信息从控制台输出 -->
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <File name="File" charset="GBK" filename="${web:rootDir}/logs/info.log" append="true"> <!-- 将日志信息写入日志文件 -->
        <PatternLayout pattern="%d %p %C{1.} [%t] %m%n"/>
    </File>
  </Appenders>
  <Loggers>
    <!-- Root level 是设置全局的信息显示级别,这里设置为error表示:error及以上的信息将被输出
    信息的级别大小为:debug < info < warn < error < fatal  -->
    <Root level="trace">
      <AppenderRef ref="Console"/>   <!-- 仅有上述的Appenders配置还不够,这里还不能少,少了就不会在控制台输出 -->
      <AppenderRef ref="File"/>  <!-- 仅有上述的Appenders配置还不够,这里还不能少,少了就不会写入文件,但会创建文件 -->
    </Root>
    <!--  可以专门为某个类指定信息级别,例如为main包下的Main类指定信息级别为trace -->
    <!-- <Logger name="main.Main" level="trace" />  -->
  </Loggers>
</Configuration>

注意filename=”web:rootDir/logs/info.log"{web:rootDir},使用它之后就会出现路径错误的信息经过摸索原来还需要在web.xml中配置,配置如下内容:

    <!-- log4j -->
    <context-param>
      <param-name>isLog4jAutoInitializationDisabled</param-name>
      <param-value>true</param-value>
    </context-param>
    <listener>
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
    </listener>

context-param和listener标签顺序要注意一下,配置后问题解决。
还有一些更多log4j的配置我在这里贴一下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 设置log4j2的自身log级别为warn -->
<!-- OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<Configuration status="WARN">
    <Appenders>
        <!-- 控制台输出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>

        <RollingFile name="RollingFileDebug" fileName="${web:rootDir}/logs/debug.log"
            filePattern="${web:rootDir}/logs/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->        
            <Filters>
                <ThresholdFilter level="DEBUG"/>
                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
            <!--最多保留20个日志文件-->
            <DefaultRolloverStrategy max="20" min="0" />  
        </RollingFile>

        <RollingFile name="RollingFileInfo" fileName="${web:rootDir}/logs/info.log"
            filePattern="${web:rootDir}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">      
            <Filters>
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
            <!--最多保留20个日志文件-->
            <DefaultRolloverStrategy max="20" min="0" />  
        </RollingFile>

        <RollingFile name="RollingFileWarn" fileName="${web:rootDir}/logs/warn.log"
            filePattern="${web:rootDir}/logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
            <!--最多保留20个日志文件-->
            <DefaultRolloverStrategy max="20" min="0" />  
        </RollingFile>

        <RollingFile name="RollingFileError" fileName="${web:rootDir}/logs/error.log"
            filePattern="${web:rootDir}/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
            <!--最多保留20个日志文件-->
            <DefaultRolloverStrategy max="20" min="0" />  
        </RollingFile>

        <RollingFile name="RollingFileFatal" fileName="${web:rootDir}/logs/fatal.log"
            filePattern="${web:rootDir}/logs/$${date:yyyy-MM}/fatal-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="FATAL"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
            <!--最多保留20个日志文件-->
            <DefaultRolloverStrategy max="20" min="0" />  
        </RollingFile>
    </Appenders>
    <Loggers>
         <!--过滤掉simm.spring.restapi一些无用的DEBUG信息-->
        <logger name="simm.spring.restapi" level="INFO"></logger>
        <Root level="all">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileDebug"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
            <appender-ref ref="RollingFileFatal"/>
        </Root>
    </Loggers>
</Configuration>
阅读更多
文章标签: Log4j2
上一篇Spring全回顾之Properties属性赋值
下一篇微信企业付款到零钱(微信提现)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭