美文网首页
简单使用log4j日志

简单使用log4j日志

作者: ffewi | 来源:发表于2018-04-25 19:16 被阅读0次

准备工作

引入jar包:log4j-1.2.14.jar
下载地址:http://ovt5bckd8.bkt.clouddn.com/log4j-1.2.14.jar

拓展:编写一个自定义的占位符

  1. 建立MyLayout.java 继承 PatternLayout。
package user;

import org.apache.log4j.PatternLayout;
import org.apache.log4j.helpers.PatternParser;

public class MyLayout extends PatternLayout {
    public MyLayout(String pattern) {
        super(pattern);
    }

    public MyLayout() {
        super();
    }

    @Override
    protected PatternParser createPatternParser(String pattern) {
        return new MyParser(pattern);
    }
}
  1. 建立MyParser.java 继承 PatternParser。
package user;

import org.apache.log4j.helpers.FormattingInfo;
import org.apache.log4j.helpers.PatternConverter;
import org.apache.log4j.helpers.PatternParser;
import org.apache.log4j.spi.LoggingEvent;

public class MyParser extends PatternParser {

    public MyParser(String pattern) {
        super(pattern);
    }

    @Override
    protected void finalizeConverter(char c) {
        if (c == 'T') {
            this.addConverter(new ExPatternConverter(this.formattingInfo));
        } else {
            super.finalizeConverter(c);
        }
    }

    private static class ExPatternConverter extends PatternConverter {

        public ExPatternConverter(FormattingInfo fi) {
            super(fi);
        }

        /**
         * 自定义的T占位符 显示内容
         */
        @Override
        protected String convert(LoggingEvent event) {
            return String.valueOf("┭┮﹏┭┮(" + Thread.currentThread().getId()
                    + ")");
        }

    }

}

编写配置文件 log.properties

# 输出级别
log4j.rootLogger=TRACE,Console,F

log4j.appender.Console=org.apache.log4j.ConsoleAppender
# 自定义的占位符解析器,上面自己定义的解析类,默认为:org.apache.log4j.PatternLayout
log4j.appender.Console.layout=user.MyLayout
# 格式化输出
log4j.appender.Console.layout.ConversionPattern=[%t>>%T][%-5p]-%d{yyyy-MM-dd HH:mm:ss} %C:%L %m%n

log4j.appender.F=org.apache.log4j.DailyRollingFileAppender
log4j.appender.F.Threshold=DEBUG
log4j.appender.F.File=D:/app.log
log4j.appender.F.DatePattern='.'yyyyMMdd
# 自定义的占位符解析器,上面自己定义的解析类,默认为:org.apache.log4j.PatternLayout
log4j.appender.F.layout=user.MyLayout
# 格式化输出
log4j.appender.F.layout.ConversionPattern=[%t>>%T][%-5p]-%d{yyyy-MM-dd HH:mm:ss} %C:%L %m%n

编写测试启动类 Start.java

package main;

import java.io.File;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Start {

    public static void main(String[] args) {
        Logger log = Logger.getLogger(Start.class);

        PropertyConfigurator.configure(System.getProperty("user.dir")
                + File.separator + "log.properties");
        log.trace("最低级的消息");
        log.debug("调试消息");
        log.info("普通消息");
        log.warn("警告消息");
        log.error("错误消息");
    }

}

控制台输出

[main>>┭┮﹏┭┮(1)][TRACE]-2018-04-25 17:29:09 main.Start:15 最低级的消息
[main>>┭┮﹏┭┮(1)][DEBUG]-2018-04-25 17:29:09 main.Start:16 调试消息
[main>>┭┮﹏┭┮(1)][INFO ]-2018-04-25 17:29:09 main.Start:17 普通消息
[main>>┭┮﹏┭┮(1)][WARN ]-2018-04-25 17:29:09 main.Start:18 警告消息
[main>>┭┮﹏┭┮(1)][ERROR]-2018-04-25 17:29:09 main.Start:19 错误消息

并且在上面配置的路径:D:/app.log 会有此文件,并且只会有DEBUG以上级别的日志,TRACE日志不会被记录进去。

相关文章

  • 使用cronolog拆分catalina.out日志

    Catalina.out日志随服务器的运行越来越大,必须定期进行拆分,可以使用log4j记录日志,使用log4j本...

  • log4j配置文档

    Log4j简介 通过使用Log4j可以看到程序运行过程中更详细的信息经常在系统之使用Log4j查看日志 使用方法 ...

  • Log4j日志实例的继承与覆盖

    一、日志实例 log4j核心类图 创建Logger实例: 使用log4j的日志功能时,首先需要创建一个Logger...

  • Log4j分包输出日志

    Log4j是我从接触Java以来一直使用的日志组件。由于Log4j的简单,易用,以至于我工作至今始终没有在意过Lo...

  • log4j

    .log4j介绍 1通过log4j可以看到程序运行过程中更详细的信息 (1)经常使用log4j查看日志 2使用 (...

  • log日志使用及冲突解决

    1 日志使用规范 应用中不应该直接使用日志系统(Log4j,Logback)中的API,而应该依赖使用日志框架SL...

  • logback学习笔记

    目的:将项目中的log4j改为logback,并且使用门面日志slf4j进行打印日志。 1.删除log4j的依赖 ...

  • 阿里巴巴 Java 开发手册(二)

    (二)日志规约 1.【强制】应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框...

  • 阿里Java开发手册日志规约的思考和理解(一)

    待分析的日志规约 【强制】应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架...

  • 日志工具-Log4j

    Log4j 概述 Log4j 是一个使用 Java 语言编写的,可靠、快速、灵活的日志框架(API),使用 Apa...

网友评论

      本文标题:简单使用log4j日志

      本文链接:https://www.haomeiwen.com/subject/funylftx.html