日志回传字符编码
您可以在 您的定义中使用,因为这是 的子类,它提供了该方法。这在文档中通过类的摘录来指示,但没有给出示例 xml 配置。对于 LayoutWrappingEncoder,这里给出了一个答案:[Logback-user]:如何使用 UTF-8。<charset>
PatternLayoutEncoder
LayoutWrappingEncoder
setCharset
因此,如果您通过代码进行配置,则可以使用UTF-8调用该方法。或者,如果您通过 xml 进行配置,则为:setCharset
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>UTF-8</charset>
<outputPatternAsHeader>true</outputPatternAsHeader>
<pattern>[%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
默认文件编码
Logback的文档正确指出使用默认字符编码。默认字符集在Windows上通常不是UTF-8(例如,我的字符集)。正确的做法是将日志备份配置为 UTF-8,如上所述。即使 logback 是从某个地方选择 UTF-8,或者是由你以某种方式设置的,也不能保证将来会发生这种情况。windows-1252
file.encoding
顺便说一句,Sun之前说过file.encoding,如果你在Oracle VM上设置它:
J2SE 平台规范不需要“file.encoding”属性;它是Sun实现的内部细节,不应该被用户代码检查或修改。它也应该是只读的;从技术上讲,不可能支持在命令行上或在程序执行期间的任何其他时间将此属性设置为任意值。
Eclipse 和 Maven
如果您从 eclipse 运行 maven,并且您已经将环境设置为 UTF-8,或者用于环境/项目或运行配置(在通用选项卡中为我),则 eclipse 将通过设置 来安排新的 JVM 具有 UTF-8 编码。参见:Eclipse 的编码文档file.encoding