SLF4J+LOG4J,在日志中能正常显示中文字符,然后尝试切换使用SLF4J+LOGBACK,发现中文字符全是乱码。网上搜索了下,发现遇到相同问题的同学不少,解决方案如下:
1.设置Encoding。在appender中增加一行<Encoding>UTF-8</Encoding>,但是在启动中报错,说是不能识别Encoding元素。有人说Encoding在0.9.22以后版本中已经不能用了。看来此方案在我使用的logback 版本中并不能解决问题
2.设置charset, 在encoder 中增加一行 <charset>UTF-8</charset>,重新启动系统,日志中中文显示正常了。 下面是我的一个简要的logback.xml 配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="c:/log"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="Mina_App" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/mina.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="Mina_Logger" level="INFO">
<appender-ref ref="Mina_App"/>
</logger>
<!-- 日志输出级别 -->
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
分享到:
相关推荐
**正文** Logback 是一款广泛使用的 Java 日志框架,由 Ceki Gülcü 创建,作为其先前作品 Log4j 的继任者。...通过阅读这份中文文档,你将能深入理解 logback 的工作原理和最佳实践,更好地利用它来解决实际问题。
**压缩包子文件的文件名称列表:logback中文手册.pdf** 这个PDF文件很可能是logback的中文用户手册,对于初学者和进阶用户来说都是极其宝贵的资源。手册可能会涵盖以下内容: 1. **安装和配置**:介绍如何在项目中...
在使用EL(Expression Language)表达式处理中文字符时,可能会遇到中文显示乱码的问题,这通常是由于字符编码不一致导致的。以下是一些详细的解决步骤和相关知识点: 1. **理解字符编码**: - 字符编码是用来表示...
然而,在实际操作中,我们可能会遇到各种问题,其中一种常见的情况就是Tomcat在控制台(Console)中显示乱码。这不仅影响了日志的可读性,也可能对问题排查造成困扰。本篇将详细讲解如何解决Tomcat控制台中文乱码的...
以`logback`为例,我们需要配置`logback.xml`,添加一个syslog appender: ```xml <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> <syslogHost>your_syslog_server_ip ...
如果在类路径中没有找到绑定的slf4j实现,则会显示一个警告,告知用户SLF4J未能加载相应的类。用户需要将slf4j-simple或者其他SLF4J绑定库添加到类路径中以消除这个警告。 SLF4J的设计目的之一是在部署时能够灵活...
Pinpoint通过跟踪分布式应用间的调用,帮助开发者分析系统总体结构以及内部各模块间的联系,从而找出问题区域和潜在的性能瓶颈。Pinpoint致力于提供简单高效的使用体验,用户仅需安装agent插件,无需修改任何代码...
在使用OpenMeetings时,不同摄像头的视频画面可能会被不同程度地裁切,导致显示异常。作者通过修改`/conference/remote/devvideoview.lzx`文件中的代码解决了这个问题。增加`_myWidth`和`_myHeight`两个属性,并在`...
"工作流乱码解决方案"这个主题就针对Activiti5在处理中文或其他非ASCII字符时可能出现的显示异常进行探讨。 Activiti5是一个开源的工作流和业务流程管理平台,它基于Java,支持BPMN 2.0标准,为企业提供了一套强大...
在这个例子中,`SensitiveInfoUtils`工具类包含了用于脱敏的具体方法,如`chineseName`用于处理中文姓名,只显示第一个汉字,其余用星号代替;`mobilePhone`方法处理电话号码,仅保留最后四位,其余替换为星号。 总...
这里显示系统语言环境为简体中文(GBK编码)。 2. **修改环境变量**:如果发现环境变量设置不正确,可以编辑`/etc/profile`文件,增加或修改如下行: ``` export LANG=zh_CN.gbk ``` 修改后,需要重新加载配置...
- **自定义 Banner**:在应用程序启动时显示自定义的信息。 - **定制 SpringApplication**:如何扩展或自定义 SpringApplication 的行为。 - **流式构建 API**:SpringApplication 提供了一个易于使用的 API 来...
开发者需要创建资源文件,比如messages.properties(英文)和messages_zh_CN.properties(中文),并配置MessageSource来加载这些文件,以便在应用中根据不同地区显示相应的消息。 3. 拦截器:Spring MVC的...
### Spring Boot 中文参考指南 #### 一、Spring Boot 简介 **1.1 Spring Boot 简介** - **Spring Boot** 是一种简化 Spring 应用程序开发的方式。 - 它通过自动配置、起步依赖等方式来简化开发过程。 - **特点**:...
在Java世界中,常见的日志框架有Log4j、Logback和java.util.logging等,这些框架生成的日志文件可以被Java日志查看器所解析和展示。 首先,让我们深入了解一下Java日志查看器的主要功能: 1. **日志文件浏览**:该...
对于使用过程中遇到的问题,可以查阅官方文档、社区论坛或通过Stack Overflow等平台寻求帮助。 **1.3 第一步** 首先,了解Spring Boot的基本概念,如它的目标是简化Spring应用的搭建和开发过程,并提供了一系列自动...
Spring Boot的Actuator模块提供了多个端点,如`health`端点用于检查应用的健康状况,`metrics`端点显示应用的各种指标。 11. **数据访问** Spring Boot对各种数据访问技术如JDBC、JPA(Hibernate)、MyBatis等...