记log也是项目开发过程中非常基础的一个功能,对于调试、测试、部署、运维至关重要。而且log的内容深度入侵到各个模块、类、函数中,因此在项目搭建之初就需要先配置好log的结构。本文讲述使用Sl4j记log的基本配置过程。
引入依赖
打开pom.xml文件,在依赖部分加入下面的代码:
org.slf4j
slf4j-api
${slf4j.version}
注:${slf4j.version}是在pom中定义的变量,例如:
1.8
1.7.26
……
记log在需要记log的class里面定义Logger变量:
private static final Logger logger = LoggerFactory.getLogger(HelloController.class);注:LoggerFactory.getLogger(Xxx.class)的Xxx是当前class的名字,这样在打印出来的log里面能看到每一条log是哪一个类打印出来的,这一点对于看log的人来说会很重要。
2. 使用logger记log
@RequestMapping("/hello")
public String hello() {
String text = "hello " + customer + ", are you " + age + " years old?";
logger.info(text);
……
查看log
运行application,调用/hello,能看到在Console窗口有log打印出来
最后一条就是刚才打印出来的log,其中包含了打印log的类名“com.fintech.helloworld.HelloController”
2019-07-24 11:37:31.502 INFO 6851 --- [nio-8080-exec-1] com.fintech.helloworld.HelloController : hello Peter-Pan, are you 1 years old?
至此,log就成功记下来了。
Log4J
Slf4j是一个记log的框架,定义了log相关的标准接口。但具体实现可以有好多个选择,一般都是用Log4j结合Slf4一起用,我们刚刚做完的一个项目就是用了log4j-over-slf4j和Slf4j来记log的。
但实际上,Log4j的2.x版本发布之后,在很多方面都有很大改进。在下一篇中我们会单独介绍用Log4j2来记log的方法。