IDEA下使用logback控制台打印日志中文字符为乱码怎么破

IDEA下使用logback控制台打印日志中文字符为乱码怎么破,第1张

打开File Encodings,方法:

windows:灶敏进入设置页。File-->Settings (快捷键:Ctrl+Alt+S),快速搜索输入encoding

mac:Intellij IDEA-->Preferences,快速搜索输入encoding

如下图所示。

2. 红框内岁辩唯,IDE Encoding 选择UTF-8,Project Encoding选择 GB2312(这个选项跟源码中的字符编码相关)

3. 在靠下的红框内,对于源码,在Default Encoding一栏选择GB2312,并保证该源码目录下的所有文件没有选择其他编码方式(即都使用默认的GB2312)

4.点乎培击OK结束。

在SSM框架搭建Java Web的过程中,需要去做日志处理。在配置logback的时候遇到了不少问题,因此而去深入地了解了一下logback。除了看了很多博客慎埋的介绍之外,还去看了一下logback的官方文档,看完之后需要去记录一下所见所得。

首先我们来轮孝哗介绍一个Appender的组成

Appender的类图如下:

ConsoleAppender用于控制台日志输出

官方文档给出了一个示例写法

<encoder>的作用是将日志格式化,转换为字节数组,并将转换后的字节数组输出到OutputStream

在encoder出现之前,主要依靠Layout来处理日志格式化。

目前,PatternLayoutEncoder唯一真正有用的编码器。它只是包装了 PatternLayout大部分工作。

具体详见 https://logback.qos.ch/manual/encoders.html

FileAppender用于将日志以文件形式保存起来

官方文档示例配置如下

<timestamp>可以用这个属性来记录这个配置文件的解析时间(我暂时还想不到有什么用)

<file>记录文件的地址和文件名

RollingFileAppender是对FileAppender的一个扩展。相较于它的父类,它的主要作用是滚动记录日志。

RollingFileAppender有两个重要的子组件:RollingPolicy和 TriggeringPolicy。RollingPolicy决定日志滚动方式,TriggeringPolicy决定日志滚动的触发条件。

(其实RollingPolicy也可以定义滚动的触发条件腊行)

而RollingPolicy滚动策略包括以下几种:

基于时间的滚动策略。这个可能是最常用的滚动策略。

官方文档示例配置如下

<fileNamePattern>滚动后的文件名,也包括了滚动时间的选择。

<maxHistory>保留的存档文件的数量,与上一个fileNamePattern有关。假设定义为6,当fileNamePattern以天为单位时,即保存6天的日志;当以月为单位时,即保存6个月的日志。旧的日志以异步的方式删除。

<totalSizeCap>所有的归档日志的大小。当超过限制时,会删掉旧的归档日志。

SizeAndTimeBasedRollingPolicy是基于时间和文件大小的滚动策略

官方文档示例配置如下

<totalSizeCap>限定的是所有的归档日志文件,而<maxFileSize>限定的则是单个日志文件

基于窗口大小的滚动策略。

这个听起来可能有点难理解,其实说白了就是将归档日志文件到最大了就写到下一个文件里,而窗口大小就是最多允许多少份日志文件。

官方文档示例配置如下

<minIndex>窗口下限。下限一般都是1啦。

<maxIndex>窗口上限。一般我们用上限就可以了。

SizeBasedTriggeringPolicy其实是TriggeringPolicy(决定什么时候滚动),好像目前暂时也只有这么一个TriggeringPolicy。

主要作用是归档日志文件到达一定大小之后进行日志滚动。

根据网上的说法,TimeBasedRollingPolicy和SizeBasedTriggeringPolicy冲突,不能同时使用。

其实使用SizeAndTimeBasedRollingPolicy就可以同时满足两个需求了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8178711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存