log4j2.xml配置和logback.xml配置说明,例子等

前端之家收集整理的这篇文章主要介绍了log4j2.xml配置和logback.xml配置说明,例子等前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
log4j2功能较为强大,运行效率也较高,下面就是这个配置文件
<Configuration status="WARN" monitorInterval="30">
  <Properties>
    <Property name="instance">$${sys:instance}</Property>
    <Property name="log.dir">$${sys:logdir}</Property>
  </Properties>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout
          pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n"/>
    </Console>
<RollingRandomAccessFile name="infoLog" fileName="${log.dir}/${instance}-info.log"
        filePattern="${log.dir}/%d{yyyy-MM}/${instance}-info-%d{yyyy-MM-dd}-%i.log.gz"
        append="true">
      <PatternLayout
          pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n"/>
      <Filters>
        <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
      </Filters>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        <SizeBasedTriggeringPolicy size="20 MB"/>
      </Policies>
    </RollingRandomAccessFile>
   <RollingRandomAccessFile name="warnLog" fileName="${log.dir}/${instance}-warn.log"
        filePattern="${log.dir}/%d{yyyy-MM}/${instance}-warn-%d{yyyy-MM-dd}-%i.log.gz"
        append="true">
      <Filters>
        <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
        <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
      </Filters>
      <PatternLayout
          pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        <SizeBasedTriggeringPolicy size="20 MB"/>
      </Policies>
    </RollingRandomAccessFile>
    <RollingRandomAccessFile name="errorLog" fileName="${log.dir}/${instance}-error.log"
        filePattern="${log.dir}/%d{yyyy-MM}/${instance}-error-%d{yyyy-MM-dd}-%i.log.gz"
        append="true">
      <Filters>
        <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
      </Filters>
      <PatternLayout
          pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        <SizeBasedTriggeringPolicy size="20 MB"/>
      </Policies>
    </RollingRandomAccessFile>
  </Appenders>
  <Loggers>
    <!-- 第三方的软件日志级别 -->
    <logger name="org.springframework" level="info" additivity="true">
      <AppenderRef ref="warnLog"/>
      <AppenderRef ref="errorLog"/>
    </logger>
    <logger name="java.sql.PreparedStatement" level="debug" additivity="true">
      <AppenderRef ref="Console"/>
    </logger>
    <!-- root logger -->
    <Root level="info" includeLocation="true">
      <AppenderRef ref="infoLog"/>
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

logback.xml 样子为:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
  <property name="LOG_HOME" value="/data/logs/druid/tranquility/" />
  <!-- 日志记录器,日期滚动记录 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_HOME}/debug.log</file>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,
		 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。      而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
            <fileNamePattern>${LOG_HOME}/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
            命名日志文件,例如log-error-2013-12-21.0.log -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <!-- 日志文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 此日志文件只记录info级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>warn</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
 <root level="warn">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>
</configuration>

在 etc/hadoop/hadoop-env.sh 改变HADOOP_LOG_DIR 值就可以指定hadoop的日志输出目录。缺省是${HADOOP_HOME}/logs。

在 mapred-env.sh 中指定HADOOP_MAPRED_LOG_DIR可以改变mapreduce 日志的存放位置。

在 yarn-env.sh 中指定YARN_LOG_DIR可以改变mapreduce 日志的存放位置

猜你在找的XML相关文章