log4j2下载及用法简介

来源:互联网 发布:阿里云 smtp发不出 编辑:程序博客网 时间:2024/06/05 05:56

第一步:

下载http://logging.apache.org/log4j/2.x/download.html  下载apache-log4j-2.8.2-bin.zip,导入log4j-api-2.8.2.jar和log4j-core-2.8.2.jar两个包到项目中


第二步:

log4j2.xml文件配置

<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="30"><!-- 每30秒检查一次配置文件,并重新加载 -->  <Appenders><!-- 输出源,简单说就是输出到哪里,下面配置了三个输出源 -->    <Console name="Console" target="SYSTEM_OUT">      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>    </Console>    <File name="file" fileName="${log4j:configParentLocation}/log/output.log" ><!-- 日志文件存放在 WEB-INF\classes\log\文件夹下面-->    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>    </File>    <RollingFile name="RollingFile" fileName="${log4j:configParentLocation}/logs/app.log"    filePattern="${log4j:configParentLocation}/logs/$${date:MM-dd-yyyy}.%i.log.gz">  <!-- 大于50M时压缩文件日志文件存放在 WEB-INF\classes\logs\文件夹下面 -->            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>            <SizeBasedTriggeringPolicy size="50MB"/>     </RollingFile>  </Appenders>  <Loggers><!-- 配置日志记录器,记录级别等内容  -->    <Logger name="xgny.spring.AOP" level="trace" additivity="false">     //xgny.spring.AOP.*下所有的都是继承这个日志记录器      <AppenderRef ref="RollingFile"/>    </Logger>    <Root level="WARN">      <AppenderRef ref="Console"/>    </Root>  </Loggers></Configuration>

详情请参见:http://blog.csdn.net/lu8000/article/details/25754415


第三步:

我利用spring的AOP编程做日志记录,关于AOP上一篇有所讲解,不在详解。

我在此处贴代码如下:

/* * 正常执行成功 * @param jp 所代理的方法属性 * @param re 所代理的方法返回值,若没有则返回null */@AfterReturning(returning="re", pointcut="execution(* xgny.spring.*.*.*.*(..))")public void methodname(JoinPoint jp, Object re){Logger logger = LogManager.getLogger(AopLog.class.getName());    //此处讲解为什么使用AopLog.class.getName(),这是因为log4j的继承
logger.error("一般错误!!!!!!!!!!!!!!!!!");
logger.fatal("致命错误!!!!!!!!!!!!!!!!!");logger.debug("调试信息!!!!!!!!!!!!!!!!!");logger.warn("警告信息!!!!!!!!!!!!!!!!!");logger.trace("跟踪信息!!!!!!!!!!!!!!!!!");//System.out.println("执行目标方法:"+jp.getSignature());//System.out.println("目标方法返回值:"+re);}/* * 异常处理 * @param jp 所代理的方法属性 * @param ex 异常 */@AfterThrowing(throwing="ex", pointcut="execution(* xgny.spring.serviceImp.*.*.*(..))")public void doAbnormality(JoinPoint jp, Throwable ex){
                Logger logger = LogManager.getLogger(AopLog.class.getName());
  //System.out.println("执行目标方法:"+jp.getSignature());logger.error("捕捉到异常:"+ex);}





原创粉丝点击