• SpringBoot中log4j的使用


    首先我们明确一下,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

  • 相关阅读:
    django.db.utils.OperationalError: (1050, "Table '表名' already exists)解决方法
    MySQL创建数据库与创建用户以及授权
    ubantu安装mysql
    sed命令详解
    docker-compose教程(安装,使用, 快速入门)
    Hive bucket表
    hive分区(partition)简介
    HIve实战分析Hadoop的日志
    hive 元数据解析
    hive学习笔记之-数据类型
  • 原文地址:https://www.cnblogs.com/ggjun/p/11381682.html
Copyright © 2020-2023  润新知