我在Spring Boot应用程序的Logback上配置有问题。我希望我的consoleAppender
看起来像默认的Spring Boot控制台appender。如何从Spring Boot默认控制台appender继承模式?
以下是我的consoleAppender
配置
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern class="org.">
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
答案 0 :(得分:33)
包含默认配置后,您可以在自己的logback-spring.xml
配置中使用其值:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<!-- use Spring default values -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
…
</configuration>
答案 1 :(得分:28)
您可以在defaults.xml文件中找到Spring Boot logback控制台日志记录模式:
弹簧引导1.5.0.RELEASE.jar /组织/ springframework的/引导/记录/的logback / defaults.xml中
控制台模式:
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
答案 2 :(得分:7)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx
</Pattern>
</layout>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
答案 3 :(得分:6)
自问这个问题以来已经有一段时间了,但由于我最近自己遇到了这个问题并且无法找到答案,所以我开始深入挖掘并找到一个对我有用的解决方案。
我最终使用调试器并查看附加到记录器的默认appender。
我发现这种模式对我来说是正常的:
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p 18737 --- [%t] %-40.40logger{39} : %m%n%wEx</pattern>
编辑:模式不完全正确,我看到运行时某些值已经被实例化(在这种情况下是18737 ---)我会查看适当的变量来替换它。它确实包含固定长度列的格式
编辑2:好的,我再看一下调试器的内容。您也可以通过查看记录器实例的内容来自己做: http://codepen.io/anon/pen/XKoqZq
所以我最终使用了consoleAppender中使用的模式:
%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(18971){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx
从这里可以看出:
答案 4 :(得分:3)
可以使用application.properties文件配置记录模式
示例:
# Logging pattern for the console
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
答案 5 :(得分:0)
对于那些想要使用ŁukaszFrancowski的答案(这看起来像是最干净的解决方案)的人来说,但是在一个时髦的版本中,“有问题的”{$PID:- }
部分可以如下扩展:
<强>的logback-spring.groovy 强>
import ch.qos.logback.classic.PatternLayout
import ch.qos.logback.core.ConsoleAppender
import org.springframework.boot.logging.logback.ColorConverter
import org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter
import org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter
import static ch.qos.logback.classic.Level.INFO
conversionRule("clr", ColorConverter)
conversionRule("wex", WhitespaceThrowableProxyConverter)
conversionRule("wEx", ExtendedWhitespaceThrowableProxyConverter)
appender("STDOUT", ConsoleAppender) {
layout(PatternLayout) {
def PID = System.getProperty("PID") ?: ''
pattern = "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx"
}
}
root(INFO, ["STDOUT"])
答案 6 :(得分:0)
您可以使用以下模式:
from random import *
char="""1234567890+!#$%&/()=?qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM
,.-;:_*@<>≤≥©™£€∞§|[]≈±`•Ω醵üıπß∂ƒ¸˛√ª÷≈ç‹›‘’°˝É‡˜ÜŒ∏◊∑∆∫¯˘¬º⁄Ç«»“”"""
char=list(char)
while True:
while True:
passlen = int(input("""Password must between 8 and 16 character """))
if 8 <= passlen <= 16:
break
for i in range(passlen):
print(char[randint(0, len(char))], end="")
print()
答案 7 :(得分:0)
请注意,您还可以自定义导入的属性。
但是请注意,至少要使用Spring Boot 1.4.3,如果要自定义从defaults.xml导入的属性,则应将自定义放置在包含之前。
例如,这将优先级自定义为100个字符宽:
<configuration scan="true">
<property name="LOG_LEVEL_PATTERN" value="%100p" />
<!-- use Spring default values -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
</layout>
</appender>
<logger name="hu" level="debug" additivity="false">
<appender-ref ref="CONSOLE" />
</logger>
<root level="warn">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
但这不是:
<configuration scan="true">
<!-- use Spring default values -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<property name="LOG_LEVEL_PATTERN" value="%100p" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
</layout>
</appender>
<logger name="hu" level="debug" additivity="false">
<appender-ref ref="CONSOLE" />
</logger>
<root level="warn">
<appender-ref ref="CONSOLE" />
</root>
</configuration>