在单独类的main函数中使用log4j记录异常日志

版权声明:技术总结来自互联网,书籍,以及工作积累。如果觉得我的总结有帮助,欢迎分享。 https://blog.csdn.net/qq1332479771/article/details/83449981

背景

自己的测试类,平时都是用System.out.println();打印输出信息。一直不会在单个类中,使用log4j打印日志信息,故,做此尝试。

效果图

做法

我这里引用lombook的jar包,因为lombook中有@Slf4j注解

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.18</version>
            <scope>provided</scope>
        </dependency>

测试代码写法

import lombok.extern.slf4j.Slf4j;
import org.apache.log4j.BasicConfigurator;

/**
 * @author Wayss.
 * @date 2018/8/7.
 */
@Slf4j
public class TestMain {
    public static void main(String[] args) {

        BasicConfigurator.configure();

        try {
            tests("some string");
        } catch (Exception e) {
            log.error("tests方法抛异常了", e);
        }

    }

    public static boolean tests(Object object) throws Exception {

        Exception exception = new Exception("自定义异常内容");

        System.out.println(exception);
        System.out.println(exception.getMessage());
        System.out.println(exception.toString());

        throw exception;

    }

}

log4j.properties配置文件信息。

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%r %d{yyyy-MM-dd HH\:mm\:ss} %c %p -%m%n

Github代码地址https://github.com/wayss000/WebDemo/blob/master/webdemo-common/src/test/java/org/knight/exception/test/WebDemoExceptionTest.java

问题:

  1. Q:log4j.properties中的A1是什么意思?有什么作用?
    A:http://www.iteye.com/problems/13692
  2. Q:为什么日志会打印两边?并且还会多个数字出来?
    A:https://segmentfault.com/q/1010000016824724

猜你喜欢

转载自blog.csdn.net/qq1332479771/article/details/83449981