开发者学堂课程【SpringBoot 实战教程:使用 log4j 进行日志管理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10785
使用 log4j 进行日志管理
1、如何在 springboot 使用中 log4j 进行日志管理?
因为 springboot 默认使用的是 logback 日志框架,要想使用 log4j 要把 logback 对应的 jar 包依赖进行排除,spring -boot -starter-logging 是 logback 对应的依赖,属于 boot-starter 里面的,比如用 exclusion 从这里面进行排除,再把log4j的包进行相应的依赖,拷贝以下代码放到 pom 文件中。
修改 pom. xml 文件,过滤掉自带的 spring-boot-starter- logging,然后添加 spring-boot- -starter- -log4j 依赖包。
<!--
l
og4j -->
<dependency>
< groupId> org. spr ingfr amework. boot</ groupId>
<artifactId>spring -boot - -starter</artifactId>
<exclusions>
<exclusion>
< groupId>org. springframework. boot </ groupId>
<artifactId>spring -boot -starter-logging</artifactId>
</exclusion>
</exclusions>
</ dependency>
<dependency >
<group Id> org. springframework. boot</ groupId>
<artifactId>spring-boot- -starter-
l
og4j</artifactId>
<version>l.3.8. RELEASE</ version>
</dependency>
2、这是一个事先创建好的工程,web 依赖也已经加入了,jar 包处理完之后,需要配置 log4j 的配置文件,同样在 resources 下创建 properities 文件,命名为 log4j.properities。
3、配置 info, error, console, debug 四种输出格式。
log4j. rootLogger= info, error, CONSOLE, DEBUG
log4j.appender.CONSOLE=org.ạpache.log4j.ConsoleAppende
向控制台输出
log4j. appender. CONSOLE. layout=org. apache. log4j. PatternLayout
log4j. appender. CONSOLE. layout. ConversionPattern=%d {yyyy-MM-dd-HH- -mm} [%t] [%c] [%p]- %m%n
log4j. logger. info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
向文件中输出日志
log4j.appender.info. layout=org. apache. log4j. PatternLayout
log4j.appender. info. layout. Conversi onPattern=%d (yyyy-MM-dd-HH-mm] [%t] [%c] [%p] - %m%n
log4j. appender. info. datePattern=' .' yyyy-MM-dd
log4j. appender. info. Threshold = info
log4j. appender. info. append=true
log4j. appender. error. layout. Convers ionPa ttern=%d lyyyy-MM-dd-HH-mm
[%t] [%c] [%p] - %m%n
log4j. appender. error. datePattern- . yyyy-MM-dd
log4j. appender, error. Threshold = error
log4j. appender. error . append-true
log4j. appender. error. File-e:
ll
springboot/api services_ error. log
log4j. logger, DEBUG=DEBUG
log4j.appender. DEBUG=org. apache. log4j. Da ilyRollingFileAppender
log4j. appender. DEBUG. layout-org. apache. log4j. PatternLayout
log4j. appender. DEBUG. layout. Convers ionPattern=%d lyyyy-MM-dd-HH-mm
[%t] [%c] [%p] - %m%n
log4j. appender. DEBUG. datePattern- . yyyyMM-dd
log4j.
appender. DEBUG. Threshold = DEBUG
log4j. appender. DEBUG. append=true
log4j. appender. DEBLG, File-e://spri ngboot/api_ serv ices_ debug.
l
og
通常配置就两种,一个是控制台打印,一个是文件输出,制定了各个级别相应的输出格式以及日志文件的路径和名称。
4、在 controller 下创建 controller,命名为 testcontroller。
5、写一个返回字符串的功能,访问路径,在类中输出日志和 logback 类似也叫 logger,用 logger 里的一个静态方法叫 getlogger,同样还是当前的 class, testcontroller.class。要想使用日志信息就用 log 即可。
@Controller
public class
TestController
{
private static Logger
log = Logger .getLogger (TestController .class)
@ResponseBody
@RequestMapping ("/tests")
public String tests ()
{
logger . debug ("debug
日志
") ;
logger .info("info
日志
") ;
logger . warn ("warn
日志
") ;
logger .error ("error
日志
") ;
return "tests" ;
}
}
6、启动,控制台输出三个级别 info,warn 和 error,磁盘上也生成了日志文件,和配置文件中规定的文件名称是一致的,这就是 springboot 中整合 log4j 的形式。