spring boot集成日记

打印 上一主题 下一主题

主题 791|帖子 791|积分 2373

1.spring boot集成日记

07 Springboot(new) · 语雀
1、导包

  
  1. <dependency>
  2.   <groupId>org.springframework.boot</groupId>
  3.   <artifactId>spring-boot-starter-web</artifactId>
  4.   <!-- springboot默认是用logback的日志框架的(性能差),所以需要排除logback,不然会出现jar依赖冲突的报错 -->
  5.   <exclusions><!-- 去掉springboot默认配置 -->
  6.      <exclusion>
  7.         <groupId>org.springframework.boot</groupId>
  8.         <artifactId>spring-boot-starter-logging</artifactId>
  9.      </exclusion>
  10.   </exclusions>
  11. </dependency>
  12. <dependency> <!-- 引入log4j2依赖 -->
  13.   <groupId>org.springframework.boot</groupId>
  14.   <artifactId>spring-boot-starter-log4j2</artifactId>
  15. </dependency>
复制代码
2、配置日记文件

在resources目录下,使用log4j2.xml文件
  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
  3. <!-- status log4j2内部输出自身的日志信息的级别 -->
  4. <!-- configuration中主要包括有 Properties、Appenders、Loggers标签 -->
  5. <configuration status="INFO">
  6.    <!-- 全局参数 -->
  7.    <Properties>
  8.        <Property name="log_dir">logs</Property>
  9.        <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L -%m%n</Property>
  10.        <Property name="displayName">mes</Property>
  11.    </Properties>
  12.    <!-- 输出源,常见的主要有Console、RollingFile、File 三种子节点
  13.      Console:用于定义输出到控制台的Appender
  14.      File:用于定义输出到指定位置的文件的Appender
  15.      RollingFile:定义指定方式触发新的Appender
  16.    -->
  17.    <Appenders>
  18.        <Console name="console" target="SYSTEM_OUT" follow="true">
  19.            <PatternLayout>
  20.                <pattern>${pattern}</pattern>
  21.            </PatternLayout>
  22.        </Console>
  23.        <!-- 文件 每次运行程序会自动清空,由append属性决定 -->
  24.        <!--<File name="error" fileName="${displayName}_error.log" append="false">-->
  25.        <!--&lt;!&ndash; 指定error 级别的日志 &ndash;&gt;-->
  26.        <!--<ThresholdFilter level="ERROR" onMatch="ACCEPT"-->
  27.        <!--onMismatch="DENY" />-->
  28.        <!--<PatternLayout>-->
  29.        <!--<pattern>${pattern}</pattern>-->
  30.        <!--</PatternLayout>-->
  31.        <!--</File>-->
  32.        <!-- 滚动文件 达到触发条件,生成新的文件,原来的内容会存档,存档的文件根据filePatternt规则增加年月日 -->
  33.        <RollingFile name="infoFile" fileName="${log_dir}/${displayName}_info.log"
  34.                     filePattern="${log_dir}/${displayName}_%d{yyyy-MM-dd}_info.log">
  35.            <!-- 本例表示只输出info日志
  36.            onMatch 表示满足指定级别及以上级别
  37.            onMisMatch 表示不满足指定级别,即指定级别以下的级别
  38.            onMatch="ACCEPT" 指定级别及以上级别,接受
  39.            onMatch="DENY" 指定级别及以上级别,拒绝
  40.            onMismatch="NEUTRAL" 指定级别以下的放行,进行后面的判断
  41.            onMismatch="deny" 指定级别以下的级别,拒绝
  42.            -->
  43.            <Filters>
  44.                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
  45.                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="deny"/>
  46.            </Filters>
  47.            <PatternLayout>
  48.                <pattern>${pattern}</pattern>
  49.            </PatternLayout>
  50.            <!-- 按大小划分 -->
  51.            <SizeBasedTriggeringPolicy size="50 MB"/>
  52.        </RollingFile>
  53.    </Appenders>
  54.    <!-- 主要配置Root、Logger两种标签 -->
  55.    <Loggers>
  56.        <!-- Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等
  57.            Logger标签内还可以配置一个或多个AppenderRef属性,用来指定日志输出到哪个Appender
  58.        -->
  59.        <!--     <Logger name="org.springframework" level="INFO" /> -->
  60.        <!-- additivity="false"表示子Logger只会在自己的appender里输出,
  61.        而不会在Root的appender里输出 -->
  62.        <Logger name="org.springframework" level="INFO" additivity="false">
  63.            <AppenderRef ref="console"></AppenderRef>
  64.        </Logger>
  65.        <Logger name="org.mybatis" level="info" additivity="false">
  66.            <AppenderRef ref="console"></AppenderRef>
  67.        </Logger>
  68.        <!-- 每个配置都必须有一个根记录器Root,默认所有的Logger都继承此配置 -->
  69.        <Root level="DEBUG">
  70.            <!-- AppenderRef 用来指定该日志输出到哪个Appender -->
  71.            <AppenderRef ref="console"></AppenderRef>
  72.            <AppenderRef ref="infoFile"></AppenderRef>
  73.            <!--
  74.            <AppenderRef ref="rollingFile"></AppenderRef>
  75.            -->
  76.        </Root>
  77.    </Loggers>
  78. </configuration>
复制代码
   %d 输出日记时间点的日期(一样平常是那一天),也可以在厥后用大括号自定义格式,比如:%d{yyyy MMM dd HH:mm:ss:SSS},输出类似:2014 11 05 :23:28 :22
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL ;
  %r 输出自应用启动到输出该log信息泯灭的毫秒数 ;
  %c 输出所属的全类名,也可以只输出类名,:%c{1} ;
  %t 输生产生该日记的当前线程名字 ;
  %m 输出代码中自定义的的信息;
  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n” ;
  3、手动输出日记

在须要输出日记的类中,创建日记对象
方式1:log4j2中的Logger对象
方式2:slf4j中的Logger对象
  
  1. import org.apache.logging.log4j.LogManager;
  2. import org.apache.logging.log4j.Logger;
  3. import org.springframework.stereotype.Service;
  4. @Service
  5. // 相当于在类中增加了 private static final Logger log = LoggerFactory.getLogger(HelloController.class)
  6. @Slf4j//方式2
  7. public class HelloController {
  8.    // 注意类所在的包 org.apache.logging.log4j.Logger  方式1
  9.    private Logger logger = LogManager.getLogger(HelloServlce.class);
  10.    @GetMapping("/hello")
  11.    public String hello() {
  12.        logger.info("info hello");
  13.        // {} 表示占位符,用于格式化参数
  14.        logger.info("info {}", "hello world");
  15.        logger.debug("debug info");
  16.        logger.error("error info");
  17.        return "logger";
  18.    }
  19.    @GetMapping("/hello2")
  20.    public String hello2() {
  21.        logger.info("info hello");
  22.        // log 通过@Slf4j注解定义
  23.        log.error("slf4j error");
  24.        log.info("slf4j info");
  25.        log.debug("slf4j debug");
  26.        return "slf4j log";
  27.    }
  28. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表