背景
自己的测试类,平时都是用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
问题:
- Q:log4j.properties中的A1是什么意思?有什么作用?
A:http://www.iteye.com/problems/13692 - Q:为什么日志会打印两边?并且还会多个数字出来?
A:https://segmentfault.com/q/1010000016824724