• java日志文件用法总结


    1.基本概念
    日志门面(接口):commons logging ; slf4j ;
    日志具体实现:log4j ; logback(Spring 系列在使用) ; log4j2(添加了异步logger的实现,提高了性能)
     
    2.具体使用(门面:slf4j 实现 : log4j2)
    ①添加maven依赖
    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.5</version>
        </dependency>
    </dependencies>                                    
    
    ②添加log4j2.xml配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
        <Loggers>
            <Root level="debug">
                <AppenderRef ref="Console" />
            </Root>
    
            <!-- 定义名字为HelloWorld的Logger,其日志级别为info,additivity为false -->>
            <Logger name="HelloWorld" level="info" additivity="false">
                <AppenderRef ref="Console"/> <!-- Root Logger的Appender引用上面定义的Console     -->
            </Logger>
        </Loggers>
     
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%p] [%c] [%L]: %m%n" />
            </Console>
        </Appenders>
    </Configuration>            
    
    注:
    Appenders:日志输出地
    PatternLayout :自定义日志打印格式
     %d:日期时间
    %t: 输出日志事件的线程名
    %p:输出日志信息的优先级,即debug、info、warn、error等
    %c:输出日志信息所属的类目,通常指所在类的全名
    %L:输出代码中的行号(比较耗损性能)
    %m:输出代码中指定的消息
    %n:输出一个回车换行符
    ③使用
    public static void main(String[] args) {
      //获取指定的日志名 Logger logger = LoggerFactory.getLogger("HelloWorld"); logger.trace("trace log ..."); logger.debug("debug log ..."); logger.info("info log ..."); logger.warn("warn log ..."); logger.error("error log ...");
    //其他非指定的日志(配置文件中的没有指定的loggger,即指root) Logger logger1 = LoggerFactory.getLogger(LogerTest.class); logger1.trace("trace log ..."); logger1.debug("debug log ..."); logger1.info("info log ..."); logger1.warn("warn log ..."); logger1.error("error log ..."); }

     打印结果如下:

  • 相关阅读:
    juicer
    了解Hypertable
    PHP中抽象类与接口的区别
    结对编程
    MySQL的分支
    ThinkPHP3.2.3学习笔记4---统计ThinkPHP3.2.3加载的文件
    对于多线程程序,单核cpu与多核cpu是怎么工作的
    IT行业技术及程序员相关网站荟萃
    参观中关村软件园二期小记
    旋转图css3
  • 原文地址:https://www.cnblogs.com/cowboys/p/8479088.html
Copyright © 2020-2023  润新知