关于logBack配置日志文件及编码配置的问题

记录下使用logback中遇到的问题,方便以后查看

logback输出到文件文件大小设置问题

目前网上能搜到的关于输出到日志文件的大小设置有如下两种:

1.单独的triggeringPolicy标签

若rollingPolicy用SizeAndTimeBasedRollingPolicy,直接复制下面的triggeringPolicy会报错,说无法创建triggeringPolicy component。

<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
              <fileNamePattern>tests.%i.log.zip</fileNamePattern>
              <minIndex>1</minIndex>
              <maxIndex>3</maxIndex>
            </rollingPolicy> 

            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
              <maxFileSize>5MB</maxFileSize>
            </triggeringPolicy>

2.此种方式会有warning 说SizeAndTimeBasedFNATP是过时的了

请用最新的SizeBasedTriggeringPolicy

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>E:/logs/mylog-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern>
    <maxHistory>5</maxHistory>

    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>100MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>

目前自己用的是一种比较简单的方法:

tests.%i.log.zip

30

10MB

如果完全按照第一种方法里的贴进去应该也是没问题的。

设置日志文件输出编码格式

网上logback.xml配置的很多,但大部分都不包含输出编码设置的,而logback默认输出到文件的编码格式是ANSI的,所以.java里是UTF-8没有问题的输出到日志里却成了乱码。

网上搜到的第一种方式是:

append下添加标签:

<charset class="java.nio.charset.Charset">UTF-8</charset>

此方法使用后logback本身有报错,说无法识别charset配置

第二种方法:

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>

有的说此方式已经过时了,实际使用logback-core 1.2.3版本的没有啥问题。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用logback实现日志打印过滤

    logback日志打印过滤 1.只打印sql语句以及参数 <?xml version="1.0" encoding="UTF-8" ?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- 设置 logger context 名称,一旦设置不可改变,默认为default --> &l

  • springboot如何使用logback-spring配置日志格式,并分环境配置

    配置不生效的解决办法 注意:如果配置不生效,则说明spring优先加载了其他配置: 解决办法: 添加启动参数 -Dlogging.config=classpath:logback-spring.xml 修改名字为 logback.xml, SpringBoot首先去查找标准的日志配置文件,如果找不到在去找拼接Spring的配置的文件, 标准文件名: "logback-test.groovy", "logback-test.xml", "logback.gr

  • 使用logback屏蔽一些包的日志

    在logback.xml中加上该配置,包名如:com.xxx <logger name="packageName" level="OFF"> </logger> 补充知识:logback,利用java包名对包内所有类定义输出形式 目的 将java package 中的所有类定义一个输出logger,定义它的级别,这样就不用每个类都配置. 测试 配置文件 <?xml version="1.0" encoding=&qu

  • Java logback日志的简单使用

    说明 logback作为log4j的替代,有很多优势.要将logback应用到项目中,步骤很简单.加入依赖的jar包和配置文件即可. logback.xml中主要元素: <property> 定义属性,定义之后,后文可以通过该变量引用. <appender> 定义日志输出格式.位置.文件分割等.被<logger>或<root>引用. <logger> 定义日志名称及对应的级别.name可以是包名.类名或者单纯的字符串.如果是包名或者类名,那么该包

  • 利用logback 设置不同包下的日志级别

    1.实现效果:项目的整体的日志打印级别为ERROR,但在某个包下或某个类想打印INFO级别的日志. 2.配置: FILE是ERROR级别日志打印: SPECIAL 是INFO级别日志打印: FILE与SPECIAL唯一不同是日志保存路径不同,其它策略相同: 通过 logger标签指定包路径或类路径并引用SPECIAL: <?xml version="1.0" encoding="UTF-8"?> <configuration> <con

  • springboot项目配置logback日志系统的实现

    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> <

  • spring boot使用logback日志级别打印控制操作

    因为公司业务需要,需要把性能日志和业务日志分开打印,用elk收集处理,所以需要对不同的业务的日志,打印到不同文件. 使用的是spring boot自带的logback. 首先在yml文件配置logback.xml文件,默认会从resources下找logback.xml文件,找不到会从yml文件中找logging.config下的指定文件. logging: level: DEBUG config: classpath:logback.xml logback.xml是logback的配置文件,可

  • 解决logback的日志文件路径问题

    假如使用绝对路径,没有任何问题,就是移植性不太好. 假如使用相对路径,则要注意当前路径"."是在哪儿? 一般我们都会在配置文件中加入log文件的存储目录,如 本人通过研究测试发现: 1.对于J2SE项目,当前路径为工程所在目录 如我的工程为:D:\test 则使用-/logs生成的日志文件位于:D:\logs 2.对于J2EE项目,当前路径为tomcat\bin所在目录 如我的tomcat路径为:D:\tomcat\bin 则使用-/logs生成的日志文件位于:D:\tomcat\lo

  • 关于logBack配置日志文件及编码配置的问题

    记录下使用logback中遇到的问题,方便以后查看 logback输出到文件文件大小设置问题 目前网上能搜到的关于输出到日志文件的大小设置有如下两种: 1.单独的triggeringPolicy标签 若rollingPolicy用SizeAndTimeBasedRollingPolicy,直接复制下面的triggeringPolicy会报错,说无法创建triggeringPolicy component. <rollingPolicy class="ch.qos.logback.core.

  • springboot+log4j.yml配置日志文件的方法

    一,Maven 依赖 pom.xml配置 1, 去掉默认日志,以便切换到log4j2的日志依赖 2, 然后添加如下两个日志依赖 二,在工程根目录下添加 lo4g2.yml 配置文件 2, 配置文件内容 <!-- 配置 log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artif

  • 使用SpringBoot_jar方式启动并配置日志文件

    目录 SpringBoot_jar方式启动并配置日志文件 前言 1.测试环境和生产环境启动 2.利用shell启动并配置log日志 2.1.测试库启动 2.2.正式库启动 2.3.停止正在运行的项目 2.4.重启项目 Jar包后台启动并输出日志 例如 SpringBoot_jar方式启动并配置日志文件 前言 正常启动 ,下面会选择application.properties 中配置默认的启动文件进行启动,下面这种情况不能根据实际情况进行启动项目 java jar admin-1.0-SNAPSH

  • Logback日志基础及自定义配置代码实例

    Logback日志基础配置 logback日志配置有很多介绍,但是有几个非常基础的,容易忽略的.下面是最简单的一个配置,注意加粗的描述 <?xml version="1.0" encoding="UTF-8"?> <configuration debug="true" scan="true" scanPeriod="30 seconds"> <!--log.path定义的是局部

  • Java 配置log4j日志文件路径 (附-获取当前类路径的多种操作)

    1 日志路径带来的痛点 Java 项目中少不了要和log4j等日志框架打交道, 开发环境和生产环境下日志文件的输出路径总是不一致, 设置为绝对路径的方式缺少了灵活性, 每次变更项目路径都要修改文件, 目前想到的最佳实现方式是: 根据项目位置自动加载并配置文件路径. 本文借鉴 Tomcat 的配置方式 "${catalina.home}/logs/catalina.out", 通过相对路径的方式设置日志的输出路径, 有其他解决方案的小伙伴, 请直接评论区交流哦

  • 全面盘点MySQL中的那些重要日志文件

    目录 简介 日志分类 参数文件 错误日志文件 全量日志文件 慢查询日志 二进制日志文件 审计日志 中继日志 PID文件 Socket文件 数据库与表 存储引擎文件 简介 该篇文章对MySQL中的日志进行总结与简单介绍,不会涉及的太深.主要的目的是为了对MySQL中的日志文件有一个体系化的了解. 日志分类 MySQL中的日志文件,配置文件.错误日志文件.二进制文件(binary log).慢查询日志(slow-query-log).全量日志(genera log).审计日志(audit log).

  • SpringBoot详细讲解日志文件

    目录 1 日志的功能是什么? 2 如何自定义日志打印 2.1 在程序中获取日志对象 2.2 调用日志对象打印日志 2.3 查看日志打印的结果 3 日志的级别 3.1 日志级别的分类 3.2 日志级别的设置 4 日志持久化 5 更简单的日志输出 5.1 添加 lombok 依赖 5.2 输出日志 5.3 lombok 更多的注解 1 日志的功能是什么? 如果程序报错了, 却不能从控制台查看日志, 那么就不知道错误的原因了. 日志的功能 : 快速的排查和定位问题 记录用户登录的日志 记录系统的操作日

  • Spring Boot Logback配置日志过程解析

    这篇文章主要介绍了Spring Boot Logback配置日志过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 出于性能等原因,Logback 目前是springboot应用日志的标配: 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式. 配置时考虑点 支持日志路径,日志level等配置 日志控制配置通过application.yml下发 按天生成日志,当天的日志>50MB回滚 最多保存10天日志 生成的日志中Pattern自

随机推荐