日志log4j.xml配置

硅谷探秘者 1998 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



评论区
请写下您的评论...
暂无评论...
猜你喜欢
框架 2613 log4j.properties1.完整示例:##屏蔽com.mchange.v2包下面的debug,info,warn信息##log4j.logger.xxx=error意为屏蔽xxx包下
框架 1240 }/pattern/layoutencoderpattern${PATTERN}/patterncharsetUTF-8/charset/encoder/appender!--下面一些第三方包的过滤级别,用
数据库 1148 开启和设二进制切换二进制相关参数二进制恢复数据库上一篇文章介绍了普通查询和慢查询等参考:mysql分析,本篇主要介绍二进制。一、什么是二进制  二进制主要记
数据库 1227 错误一般查询慢查询官方手册:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html不管是哪个数据库产品,一定会有文件。在
框架 3645 springaop实现操作记录此次的目的是实现对controller中的方法执行情况进行记录,记录的有方法执行时间,操作人,请求的路径,方法的入参,模块,功能等。并实现利用注解的方式实现对被操作
nginx 1050 /nginx-sreopen重新打开文件。./sbin/nginx-t不运行,而仅仅测试文件。nginx将检查文件的语法的正确性,并尝试打开文件中所引用到的文件。./sbin/nginx-v显示nginx的版本。./sbin/nginx-V显示nginx的版本,编译器版本和参数。
数据库,mysql 790 主从复制的基本原理 (1)master服务器将数据的改变记录二进制binlog,当master上的数据发生改变时,则将其改变写入二进制中;(2)slave服务器会在一定时间间隔内对
框架 3541 #当中需要内存大小时,可以使用1k,5GB,4M等类似的格式,其转换方式如下(不区分大小写)##1k=1000bytes#1kb=1024bytes#1m=1000000bytes#1mb
归档
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 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。