日志log4j.xml配置

硅谷探秘者 858 0 0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration>
    <!--输出到控制台-->
    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="DEBUG"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>
    </appender>

    <!--输出到文件(info)-->
    <!--将生成“info.log.2014-06-11”这样的日志文件-->
    <appender name="fileAppenderInfo" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="E:/test/logger/info.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="INFO" />
        </filter>
    </appender>

    <!--输出到文件(warn)-->
    <appender name="fileAppenderWarn" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="E:/test/logger/warn.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>

        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="WARN" />
            <param name="LevelMax" value="WARN" />
        </filter>
    </appender>

    <!--输出到文件(error)-->
    <appender name="fileAppenderError" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="E:/test/logger/error.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="ERROR" />
            <param name="LevelMax" value="ERROR" />
        </filter>
    </appender>

    <!--屏蔽所有org.springframework.*输出的Debug(及以下)信息-->
    <logger name="org.springframework">
        <level value="INFO"></level>
    </logger>
    <!--屏蔽所有com.mchange.v2*输出的Debug(及以下)信息-->
    <logger name="com.mchange.v2">
        <level value="INFO"></level>
    </logger>

    <root>
        <level value="ALL"/>
        <appender-ref ref="consoleAppender" />
        <appender-ref ref="fileAppenderInfo" />
        <appender-ref ref="fileAppenderWarn" />
        <appender-ref ref="fileAppenderError" />
    </root>
</log4j:configuration>


Appender

        Appender:日志输出器,配置日志的输出级别、输出位置等,包括以下几类:


  • ConsoleAppender: 日志输出到控制台;

  • FileAppender:输出到文件;

  • RollingFileAppender:输出到文件,文件达到一定阈值时,自动备份日志文件;

  • DailyRollingFileAppender:可定期备份日志文件,默认一天一个文件,也可设置为每分钟一个、每小时一个;

  • WriterAppender:可自定义日志输出位置。




日志级别


  • 一般日志级别包括:ALL,DEBUG, INFO, WARN, ERROR,FATAL,OFF

  • Log4J推荐使用:DEBUG, INFO, WARN, ERROR



输出格式

        Log4J最常用的日志输出格式为:org.apache.log4j.PatternLayOut,其主要参数为:

  • %n - 换行

  • %m - 日志内容

  • %p - 日志级别(FATAL, ERROR,WARN, INFO,DEBUG or custom)

  • %r - 程序启动到现在的毫秒数

  • %t - 当前线程名

  • %d - 日期和时间, 一般使用格式 %d{yyyy-MM-dd HH:mm:ss, SSS}

  • %l - 输出日志事件的发生位置, 同 %F%L%C%M

  • %F - java 源文件名

  • %L - java 源码行数

  • %C - java 类名,%C{1} 输出最后一个元素

  • %M - java 方法名


  • 案例:

package cn.com.dzqc.controller;

import org.apache.log4j.Logger;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/goods")
public class GoodsController {

	Logger l=Logger.getLogger(GoodsController.class);
	
	@RequestMapping("/test")
	@ResponseBody
	public MyAjaxResult test() {
		l.debug("debug");
		l.info("info");
		l.warn("warn");
		l.error("error");
		return MyAjaxResult.success("ok");
	}
}
	

image.png


猜你喜欢
框架 1638 log4j.properties1.完整示例:##屏蔽com.mchange.v2包下面的debug,info,warn信息##log4j.logger.xxx=error意为屏蔽xxx包下
框架 2493 springaop实现操作记录此次的目的是实现对controller中的方法执行情况进行记录,记录的有方法执行时间,操作人,请求的路径,方法的入参,模块,功能等。并实现利用注解的方式实现对被操作
框架 2752 #当中需要内存大小时,可以使用1k,5GB,4M等类似的格式,其转换方式如下(不区分大小写)##1k=1000bytes#1kb=1024bytes#1m=1000000bytes#1mb
框架 6811 多么痛的领悟~分离资源打包后运行项目,启动失败数据源初始化失败~检查问题,这种情况下没有打印错误,首先一下,将错误报告在控制台中打印出来。resources文件夹下创建一个
spring/springmvc 1681 springMVC多视图管理器在springmvc的文件中如下:!--多视图管理器--!--jsp视图管理器1--beanclass
weblog 161 1.修改文件修改activemq安装目录下./bin目录下的文件activemq.xml在transportConnectors标签中添加nio协议
框架 508 1.Log注解importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;//
框架 2536 1.测试项目分布:2.测试数据库分布:有两个数据库1.main2.second3.项目yml文件:server:port:8888servlet:context-path:/#项目路径
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo
目录