SpringBoot中log4j的使用

摘要:
首先我们明确一下,Springboot其实已经默认集成了slf4j-log,同时也是默认开启的。但是很多小伙伴习惯性使用log4j,并且我们框架也是用的log4j。于是乎,有了这篇log4j的简单介绍及其使用。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。

首先我们明确一下,Spring boot其实已经默认集成了slf4j-log,同时也是默认开启的。但是很多小伙伴习惯性使用log4j,并且我们框架也是用的log4j。于是乎,有了这篇log4j的简单介绍及其使用。

1、修改spring-boot-starter的dependency,剔除集成的logging

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>

2、引入需要使用的log4j jar

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>

3、引入配置文件

其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值),即properties文件。

具体介绍配置之前,大家先了解一下Log4j由三个重要的组件构成

日志信息的优先级、日志信息的输出目的地、日志信息的输出格式

日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;

日志信息的输出目的地指定了日志将打印到控制台还是文件中;

而输出格式则控制了日志信息的显示内容。

由于我们框架使用的就是xml格式,即log4j.xml,这里就不做过多介绍,以properties格式为例介绍一下其相关配置

1.配置根Logger,其语法为:


log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。比如:stdout代表控制台、file代表文件

2.配置日志信息输出目的地Appender,Log4j提供的appender有以下几种:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

不光根指定了输出目的地,还可以对该输出做一些格式布局,其中,Log4j提供的layout有以几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息

最后再介绍几个项目中常规的用法

1、打印druid连接池的sql

log4j.logger.druid.sql.Statement=ERROR,可以改变其值来调整监控优先级,比如需要打印出所有druid连接池调用的sql,则只需改成DEBUG,就等同于我们项目上把log4j.xml做如下配置

<logger name="druid.sql.Statement">
<level value="DEBUG" />
</logger>

2、指定输出文件名

log4j.appender.file.file=logs/springboot.log

请使用手机"扫一扫"x

免责声明:文章转载自《SpringBoot中log4j的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【MongoDB】关于Mongodb的学习与总结ansible playbook中的变量定义与引用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mac osx下apache下的坑: you don’t have permission to access / on this server

在Mac下Apache修改默认站点的目录时,遇到403错误,  you don’t have permission to access / on this server 首先按照google到教程: 修改Apache目录 上面说到了mac下Apache的默认文件夹为/Library/WebServer/Documents,该目录默认是隐藏的,操作不是很方...

LeftoverDataException,依赖包,apache license 2.0

1. poi3.9 LeftoverDataException org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0x1D left 1 bytes remaining still to be read. at o...

升级apache

升级Apache到最新版本,本来并不复杂,但是因为涉及到不能停止现有的Apache实例的运行,因此要小心翼翼的做。 大致分成三步: 编译新的Apache, 配置新的Apache, 替换旧的Apache。 下面慢慢道来: 1.编译新的Apache, 需要到官网下载最新的src,需要什么依赖包,请参照下载的源码包里面的README和INSTALL。 如果需要安...

eclipse+maven+ssm框架搭建

eclipse+maven+ssm框架 0、系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Developers  Version: Neon.3 Release (4.6.3) 4)Tomcat 8.5 1、maven下载及配置 maven的下载地址:http:...

Hadoop 管理监控工具:Apache Ambari

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。 Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase...

【ActiveMq】启动amq时遇到java.net.URISyntaxException: Illegal character in hostname at index处理方法

启动Apache ActiveMQ 5.13.2 时遇到以下错误: 2017-10-30 17:44:53,714 | INFO  | Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@1bffd008: startup date [Mon Oct 30 17:44:53 CST 2017]...