log4j2.1使用指南[二] Web工程

来源:互联网 发布:淘宝怎么签署图片协议 编辑:程序博客网 时间:2024/04/29 16:49

在web工程下使用log4j2很简单,首先需要下载,地址为:logging.apache.org,然后选择log4j 2.x的版本进去下载就可以了。

需要用到的jar包:log4j-core-2.1.jar,log4j-api-2.1.jar,log4j-web.jar

日志级别:

               trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。

    debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。

    info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。

    warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。

    error: 错误信息。用的也比较多。

    fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了。

日志的调用方法:

在servlet中使用:

private static Loggerlog = LogManager.getLogger();

具体情况可以参照附件中的示例demo

log4j2的配置文件可以使用多种方法,包括xml/json等,这里使用的xml,xml的名称为log4j2.xml,路径位于src下,

<?xmlversion="1.0"encoding="UTF-8"?>

<!-- status="OFF",可以去掉,它的含义为是否记录log4j2本身的event信息,默认是OFF -->

<configurationstatus="OFF">

     <!--定义下面的引用名 -->

     <Properties>

          <propertyname="log_pattern">%d{yyyy-MM-ddHH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n</property>

          <propertyname="basePath">/Users/ChinaMWorld/Desktop</property>

          <propertyname="file_name">${basePath}/applog/app.log</property>

          <propertyname="rolling_file_name">${basePath}/applog/app-%d{yyyy-MM-dd}-%i.log.gz</property>

         

          <propertyname="every_file_size">10M</property><!--日志切割的最小单位 -->

          <propertyname="output_log_level">debug</property><!--日志输出级别 -->

     </Properties>

 

    <!--先定义所有的appender-->

    <appenders>

       <!--这个输出控制台的配置-->

       <Consolename="Console"target="SYSTEM_OUT">

           <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch-->

           <ThresholdFilterlevel="trace"onMatch="ACCEPT"onMismatch="DENY"/>

           <!--这个都知道是输出日志的格式-->

           <PatternLayoutpattern="${log_pattern}"/>

       </Console>

 

       <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->

       <!--按月生成归档日志,可以使用filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"-->

       <RollingFilename="RollingFile"fileName="${file_name}"

                    filePattern="${rolling_file_name}">

           <PatternLayoutpattern="${log_pattern}"/>

           <SizeBasedTriggeringPolicysize="${every_file_size}"/>

       </RollingFile>

       

       <!--如果需要配置多个Rollingfile地址,还需要在root下添加appender-ref ref="RollingFile1"/> 

        <RollingFile name="RollingFile1" fileName="logs/app1.log"

                    filePattern="logs/app1-%d{yyyy-MM-dd}-%i.log.gz">

           <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z}%-5level %class{36} %L %M - %msg%xEx%n"/>

           <SizeBasedTriggeringPolicy size="10MB"/>

       </RollingFile>

        -->

    </appenders>

    <!--然后定义logger,只有定义了logger并引入的appenderappender才会生效-->

    <loggers>

       <!--建立一个默认的rootlogger,需要在rootlevel中指定输出的级别,-->

       <rootlevel="${output_log_level}">

           <appender-refref="RollingFile"/>

           <appender-refref="Console"/>

       </root>

 

    </loggers>

</configuration>

 

关于配置信息的解释,可以查看( log4j2.1使用指南[一]  java工程)

此时,如果想在日志中查看错误信息,需要手工在catch的exception中编写log.error(msg),实际上可以使用Interceptor或者通过aop(aspectj)切面编程自动添加日志操作,不在此次讨论之列。

范例demo下载地址:http://download.csdn.net/detail/seven_zhao/8294671

 

 

1 0