使用logback来输出日志

日志级别——level

  • debug:调试,从名字可以看出其作用。程序中报错无法解决时,使用调试来查看更多错误信息。在mybatis中使用这种日志才会输出sql语句。debug的输出量太大,而且不懂源码的人很多都看不懂,还有很多没什么实际作用的日志信息刷屏,只适合报异常程序的调试。
  • info:信息,信息量比debug少很多,只会输出一些重要的信息,适合开发时使用。
  • warn:警告,通常是可以修复的,不修复也不一定会引发异常,有时候是一些提示信息,但是比info信息更加重要
  • error:错误,很明显,就是程序异常

logback读取配置文件

logback在初始化时,按照以下顺序来读取配置文件

  1. 如果java程序启动时指定了logback.configurationFile属性,就用该属性指定的配置文件。如java -Dlogback.configurationFile=/path/to/mylogback.xml Test ,这样执行Test类的时候就会加载/path/to/mylogback.xml配置。
  2. 在classpath中查找 logback-test.xml 文件。
  3. 在classpath中查找 logback.groovy 文件。
  4. 在classpath中查找 logback.xml 文件。

logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

    <!--定义变量,可以通过${name}使用-->
    <property name="path" value="log" />

    <!--ConsoleAppender 用于配置日志的输出,ConsoleAppender是控制台-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 配置日志格式,这是一个比较通用的格式 -->
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <!-- 输出终端是滚动文件 -->
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
            <fileNamePattern>${path}/info/info-%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 最大保存2个文件,超出的历史文件会被删除 -->
            <maxHistory>2</maxHistory>
        </rollingPolicy>

        <!-- 按照日志级别进行过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <encoder>
            <!-- 配置日志格式,这是一个比较通用的格式 -->
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <!-- 输出终端是滚动文件 -->
    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
            <fileNamePattern>${path}/warn/warn-%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 最大保存2个文件,超出的历史文件会被删除 -->
            <maxHistory>2</maxHistory>
        </rollingPolicy>

        <!-- 按照日志级别进行过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <encoder>
            <!-- 配置日志格式,这是一个比较通用的格式 -->
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="INFO" />
        <appender-ref ref="WARN" />
    </root>
</configuration>

原文地址:https://www.cnblogs.com/xucoding/p/11811806.html

时间: 2024-07-30 13:07:18

使用logback来输出日志的相关文章

logback kafkaAppender输出日志到kafka

官网地址https://github.com/danielwegener/logback-kafka-appender 本文以spring boot项目为基础,更多的信息,请参考官网 https://github.com/danielwegener/logback-kafka-appender 使用maven引入所需要的jar包 <dependency> <groupId>com.github.danielwegener</groupId> <artifactId

springboot的日志框架slf4j (使用logback输出日志以及使用)

1.为什么使用logback? --在开发中不建议使用System.out因为大量的使用会增加资源的消耗.因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序.而使用Log工具不但可以控制日志是否输出,怎么输出,它的处理机制也是通知写日志,继续执行后面的代码不必等日志写完. --个人推荐使用SLF4J(Simple Logging Fa?ade For Java)的logback来输出日志,其比log4j效率高.     --Spring Boot 提供了

SpringBoot+logback实现按业务输出日志到不同的文件

公司有个项目,需要和几个第三方系统对接.这种项目,日志一定要记录详细,不然出了问题就是各种甩锅.虽然项目里面和第三方系统对接相关的业务记录的日志很详细,但是由于整个项目的日志都在一个文件中,排查问题时比较麻烦.因此希望可以把这些和第三方对接的日志生成在另外一个单独的文件.这也就是标题中的实现按业务输出日志到不同的文件,下面开始讲解具体的实现方案. 一.方案 由于需要按业务生成不同的日志文件,看到按业务来区分,我的第一感觉就是业务其实是可以按包名来区分的.所以其实我们只要实现不同的包下面的日志输出

Spring Boot 使用 Log4j2 &amp; Logback 输出日志到 EKL

文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集.分析.存储数据等功能,Logstash 主要是用来日志的搜集.分析.过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 Web 平台

logback框架之——日志加拿大28源码出售分割所带来的潜在问题

源码:logback-test.xml文件如下加拿大28源码出售(www.1159880099.com)QQ1159880099 ,有2个需要我们重点关注的参数:fileNamePattern:这里的日志文件名变动的部分是年月日时,外加1个文件分割自增变量,警告,年月日时的数值依赖于系统时间,自增变量依赖logback框架里运行时的内存变量.maxFileSize:这里日志文件分割的条件为日志文件大小达到1M. 输出日志的源码如下,需要注意的是:我们用while循环输出日志,比正常的日志输出强度

对于Android系统Log输出日志的封装LogUtils

MainActivity如下: package cc.cn.logutil; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 对于Android系统Log输出日志的封装LogUtils * 1 可修改LogUtils中的LEVEL值觉得哪些级别的日志可以输出. * 所以方便选择性输出日志或者屏蔽日志输出 * 2 输出的日志除了本想输出的信息外还包含了该日志输出时所属 * 的线程,类,方法名,已经在该方法

【转】kettle 的内存设置及输出日志的时间类型

本文转载自:http://blog.csdn.net/dqswuyundong/archive/2010/10/19/5952004.aspx 设置kettle的内存 REM ******************************************************************REM ** Set java runtime options                                     **REM ** Change 256m to high

【转】Log4j按级别输出日志到不同文件配置分析

关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 log4j.rootLogger=info,stdout,info,debug,error log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdou

log4j输出日志乱码(转)

log4j日志文件乱码问题的解决方法 log4j日志文件中文乱码处理方法 log4j 控制台和文件输出乱码问题解决 写在前面,第三篇文章中将原因解释的最清楚,为什么设置为UTF-8或者GBK就生效了,原因是类文件的编码和输入日志的编码必须一致,否则就会出现乱码. 转:log4j日志文件乱码问题的解决方法 近日在AIX上用log4j打印日志,出现乱码,经过努力解决问题. 症状:在默认语言非中文(或者说默认语言不支持中文的)的Windows.Linux.Unix上,用log4j打印日志,出现乱码,常