{"id":1589,"date":"2024-03-06T15:33:15","date_gmt":"2024-03-06T07:33:15","guid":{"rendered":"https:\/\/www.yeetrack.com\/?p=1589"},"modified":"2024-03-06T15:33:15","modified_gmt":"2024-03-06T07:33:15","slug":"springboot%e4%bd%bf%e7%94%a8logback","status":"publish","type":"post","link":"https:\/\/www.yeetrack.com\/?p=1589","title":{"rendered":"springboot\u4f7f\u7528logback"},"content":{"rendered":"<p>springboot \u9ed8\u8ba4\u96c6\u6210\u4e86log4j\u548clogback\uff0c\u8bba\u6027\u80fdlogback\u5360\u4f18\u3002<br \/>\n\u6392\u9664\u6389log4j\u76f8\u5173\u7684\u5305\uff1a <\/p>\n<pre><code class=\"language-xml\">&lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;\n            &lt;exclusions&gt;\n                &lt;exclusion&gt;\n                    &lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;\n                    &lt;artifactId&gt;log4j-api&lt;\/artifactId&gt;\n                &lt;\/exclusion&gt;\n                &lt;exclusion&gt;\n                    &lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;\n                    &lt;artifactId&gt;log4j-to-slf4j&lt;\/artifactId&gt;\n                &lt;\/exclusion&gt;\n            &lt;\/exclusions&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<p>application.properties\u914d\u7f6e\u6587\u4ef6\u6307\u5b9alogback\u7684\u4f4d\u7f6e\uff1a  <\/p>\n<pre><code>    logging.config=classpath:logback.xml<\/code><\/pre>\n<pre><code class=\"language-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;!-- \u65e5\u5fd7\u7ea7\u522b\u4ece\u4f4e\u5230\u9ad8\u5206\u4e3aTRACE &lt; DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3aWARN\uff0c\u5219\u4f4e\u4e8eWARN\u7684\u4fe1\u606f\u90fd\u4e0d\u4f1a\u8f93\u51fa --&gt;\n\n&lt;!-- \u6839\u8282\u70b9&lt;configuration&gt;\uff0c\u5305\u542b\u4e0b\u9762\u4e09\u4e2a\u5c5e\u6027\uff1a--&gt;\n&lt;!-- scan: \u5f53\u6b64\u5c5e\u6027\u8bbe\u7f6e\u4e3atrue\u65f6\uff0c\u914d\u7f6e\u6587\u4ef6\u5982\u679c\u53d1\u751f\u6539\u53d8\uff0c\u5c06\u4f1a\u88ab\u91cd\u65b0\u52a0\u8f7d\uff0c\u9ed8\u8ba4\u503c\u4e3atrue\u3002--&gt;\n&lt;!-- scanPeriod: \u8bbe\u7f6e\u76d1\u6d4b\u914d\u7f6e\u6587\u4ef6\u662f\u5426\u6709\u4fee\u6539\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u5982\u679c\u6ca1\u6709\u7ed9\u51fa\u65f6\u95f4\u5355\u4f4d\uff0c\u9ed8\u8ba4\u5355\u4f4d\u662f\u6beb\u79d2\u3002\u5f53scan\u4e3atrue\u65f6\uff0c\u6b64\u5c5e\u6027\u751f\u6548\u3002\u9ed8\u8ba4\u7684\u65f6\u95f4\u95f4\u9694\u4e3a1\u5206\u949f\u3002--&gt;\n&lt;!-- debug: \u5f53\u6b64\u5c5e\u6027\u8bbe\u7f6e\u4e3atrue\u65f6\uff0c\u5c06\u6253\u5370\u51falogback\u5185\u90e8\u65e5\u5fd7\u4fe1\u606f\uff0c\u5b9e\u65f6\u67e5\u770blogback\u8fd0\u884c\u72b6\u6001\u3002\u9ed8\u8ba4\u503c\u4e3afalse\u3002--&gt;\n&lt;configuration&gt;\n    &lt;contextName&gt;dimples-logback&lt;\/contextName&gt;\n    &lt;!-- name\u7684\u503c\u662f\u53d8\u91cf\u7684\u540d\u79f0\uff0cvalue\u7684\u503c\u65f6\u53d8\u91cf\u5b9a\u4e49\u7684\u503c\u3002\u901a\u8fc7\u5b9a\u4e49\u7684\u503c\u4f1a\u88ab\u63d2\u5165\u5230logger\u4e0a\u4e0b\u6587\u4e2d\u3002\u5b9a\u4e49\u53d8\u91cf\u540e\uff0c\u53ef\u4ee5\u4f7f\u201c${}\u201d\u6765\u4f7f\u7528\u53d8\u91cf\u3002 --&gt;\n    &lt;property name=&quot;log.path&quot; value=&quot;logs&quot; \/&gt;\n    &lt;property name=&quot;app.name&quot; value=&quot;job-system&quot; \/&gt;\n\n    &lt;!-- \u5f69\u8272\u65e5\u5fd7 --&gt;\n    &lt;!-- \u5f69\u8272\u65e5\u5fd7\u4f9d\u8d56\u7684\u6e32\u67d3\u7c7b --&gt;\n    &lt;conversionRule conversionWord=&quot;clr&quot;\n                    converterClass=&quot;org.springframework.boot.logging.logback.ColorConverter&quot; \/&gt;\n    &lt;conversionRule conversionWord=&quot;wex&quot;\n                    converterClass=&quot;org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter&quot; \/&gt;\n    &lt;conversionRule conversionWord=&quot;wEx&quot;\n                    converterClass=&quot;org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter&quot; \/&gt;\n    &lt;!-- \u5f69\u8272\u65e5\u5fd7\u683c\u5f0f --&gt;\n    &lt;property name=&quot;CONSOLE_LOG_PATTERN&quot;\n              value=&quot;${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}}&quot; \/&gt;\n    &lt;property name=&quot;log.colorPattern&quot; value=&quot;%magenta(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %boldCyan([${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %yellow(%thread) %green(%logger) %msg%n&quot;\/&gt;\n    &lt;property name=&quot;log.pattern&quot; value=&quot;%d{yyyy-MM-dd HH:mm:ss} %-5level [${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] %thread %logger %msg%n&quot;\/&gt;\n    &lt;!-- %m\u8f93\u51fa\u7684\u4fe1\u606f,%p\u65e5\u5fd7\u7ea7\u522b,%t\u7ebf\u7a0b\u540d,%d\u65e5\u671f,%c\u7c7b\u7684\u5168\u540d,%i\u7d22\u5f15\u3010\u4ece\u6570\u5b570\u5f00\u59cb\u9012\u589e\u3011,,, --&gt;\n    &lt;!-- appender\u662fconfiguration\u7684\u5b50\u8282\u70b9\uff0c\u662f\u8d1f\u8d23\u5199\u65e5\u5fd7\u7684\u7ec4\u4ef6\u3002 --&gt;\n    &lt;!-- ConsoleAppender\uff1a\u628a\u65e5\u5fd7\u8f93\u51fa\u5230\u63a7\u5236\u53f0 --&gt;\n    &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;\n        &lt;encoder&gt;\n            &lt;Pattern&gt;${CONSOLE_LOG_PATTERN}&lt;\/Pattern&gt;\n            &lt;!-- \u63a7\u5236\u53f0\u4e5f\u8981\u4f7f\u7528UTF-8\uff0c\u4e0d\u8981\u4f7f\u7528GBK\uff0c\u5426\u5219\u4f1a\u4e2d\u6587\u4e71\u7801 --&gt;\n            &lt;charset&gt;UTF-8&lt;\/charset&gt;\n        &lt;\/encoder&gt;\n    &lt;\/appender&gt;\n\n    &lt;!-- \u65f6\u95f4\u6eda\u52a8\u8f93\u51fa level\u4e3a INFO \u65e5\u5fd7 --&gt;\n    &lt;appender name=&quot;INFO_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;\n        &lt;!-- \u6b63\u5728\u8bb0\u5f55\u7684\u65e5\u5fd7\u6587\u4ef6\u7684\u8def\u5f84\u53ca\u6587\u4ef6\u540d --&gt;\n        &lt;file&gt;${log.path}\/${app.name}.log&lt;\/file&gt;\n        &lt;!--\u65e5\u5fd7\u4fe1\u606f\u8f93\u51fa\u683c\u5f0f--&gt;\n        &lt;encoder&gt;\n            &lt;pattern&gt;%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n&lt;\/pattern&gt;\n            &lt;charset&gt;UTF-8&lt;\/charset&gt;\n        &lt;\/encoder&gt;\n        &lt;!-- \u65e5\u5fd7\u8bb0\u5f55\u5668\u7684\u6eda\u52a8\u7b56\u7565\uff0c\u6309\u65e5\u671f\uff0c\u6309\u5927\u5c0f\u8bb0\u5f55 --&gt;\n        &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy&quot;&gt;\n            &lt;!-- \u6bcf\u5929\u65e5\u5fd7\u5f52\u6863\u8def\u5f84\u4ee5\u53ca\u683c\u5f0f --&gt;\n            &lt;fileNamePattern&gt;${log.path}\/${app.name}-%d{yyyy-MM-dd}.%i.log&lt;\/fileNamePattern&gt;\n            &lt;maxFileSize&gt;10MB&lt;\/maxFileSize&gt;\n            &lt;!--\u65e5\u5fd7\u6587\u4ef6\u4fdd\u7559\u5929\u6570--&gt;\n            &lt;maxHistory&gt;15&lt;\/maxHistory&gt;\n        &lt;\/rollingPolicy&gt;\n        &lt;!-- \u6b64\u65e5\u5fd7\u6587\u4ef6\u53ea\u8bb0\u5f55info\u7ea7\u522b\u7684 --&gt;\n        &lt;filter class=&quot;ch.qos.logback.classic.filter.LevelFilter&quot;&gt;\n            &lt;level&gt;INFO&lt;\/level&gt;\n        &lt;\/filter&gt;\n        &lt;filter class=&quot;ch.qos.logback.classic.filter.LevelFilter&quot;&gt;\n            &lt;level&gt;DBUG&lt;\/level&gt;\n        &lt;\/filter&gt;\n        &lt;filter class=&quot;ch.qos.logback.classic.filter.LevelFilter&quot;&gt;\n            &lt;level&gt;WARN&lt;\/level&gt;\n        &lt;\/filter&gt;\n    &lt;\/appender&gt;\n    &lt;!-- RollingFileAppender\uff1a\u6eda\u52a8\u8bb0\u5f55\u6587\u4ef6\uff0c\u5148\u5c06\u65e5\u5fd7\u8bb0\u5f55\u5230\u6307\u5b9a\u6587\u4ef6\uff0c\u5f53\u7b26\u5408\u67d0\u4e2a\u6761\u4ef6\u65f6\uff0c\u5c06\u65e5\u5fd7\u8bb0\u5f55\u5230\u5176\u4ed6\u6587\u4ef6 --&gt;\n    &lt;!--             2.\u5982\u679c\u65e5\u671f\u6ca1\u6709\u53d1\u751f\u53d8\u5316\uff0c\u4f46\u662f\u5f53\u524d\u65e5\u5fd7\u7684\u6587\u4ef6\u5927\u5c0f\u8d85\u8fc71KB\u65f6\uff0c\u5bf9\u5f53\u524d\u65e5\u5fd7\u8fdb\u884c\u5206\u5272 \u91cd\u547d\u540d--&gt;\n    &lt;!-- \u65f6\u95f4\u6eda\u52a8\u8f93\u51fa level\u4e3a ERROR \u65e5\u5fd7 --&gt;\n    &lt;appender name=&quot;ERROR_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;\n        &lt;!-- \u6b63\u5728\u8bb0\u5f55\u7684\u65e5\u5fd7\u6587\u4ef6\u7684\u8def\u5f84\u53ca\u6587\u4ef6\u540d --&gt;\n        &lt;file&gt;${log.path}\/${app.name}_error.log&lt;\/file&gt;\n        &lt;!--\u65e5\u5fd7\u4fe1\u606f\u8f93\u51fa\u683c\u5f0f--&gt;\n        &lt;encoder&gt;\n            &lt;pattern&gt;%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n&lt;\/pattern&gt;\n            &lt;charset&gt;UTF-8&lt;\/charset&gt; &lt;!-- \u6b64\u5904\u8bbe\u7f6e\u5b57\u7b26\u96c6 --&gt;\n        &lt;\/encoder&gt;\n        &lt;!-- \u65e5\u5fd7\u8bb0\u5f55\u5668\u7684\u6eda\u52a8\u7b56\u7565\uff0c\u6309\u65e5\u671f\uff0c\u6309\u5927\u5c0f\u8bb0\u5f55 --&gt;\n        &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy&quot;&gt;\n            &lt;fileNamePattern&gt;${log.path}\/${app.name}-error-%d{yyyy-MM-dd}.%i.log&lt;\/fileNamePattern&gt;\n            &lt;maxFileSize&gt;10MB&lt;\/maxFileSize&gt;\n            &lt;!--\u65e5\u5fd7\u6587\u4ef6\u4fdd\u7559\u5929\u6570--&gt;\n            &lt;maxHistory&gt;30&lt;\/maxHistory&gt;\n        &lt;\/rollingPolicy&gt;\n        &lt;!-- \u6b64\u65e5\u5fd7\u6587\u4ef6\u53ea\u8bb0\u5f55ERROR\u7ea7\u522b\u7684 --&gt;\n        &lt;filter class=&quot;ch.qos.logback.classic.filter.LevelFilter&quot;&gt;\n            &lt;level&gt;ERROR&lt;\/level&gt;\n            &lt;onMatch&gt;ACCEPT&lt;\/onMatch&gt;\n            &lt;onMismatch&gt;DENY&lt;\/onMismatch&gt;\n        &lt;\/filter&gt;\n    &lt;\/appender&gt;\n    &lt;!--\u5f00\u53d1\u73af\u5883:\u6253\u5370\u63a7\u5236\u53f0--&gt;\n    &lt;!-- \u6307\u5b9a\u9879\u76ee\u4e2d\u67d0\u4e2a\u5305\uff0c\u5f53\u6709\u65e5\u5fd7\u64cd\u4f5c\u884c\u4e3a\u65f6\u7684\u65e5\u5fd7\u8bb0\u5f55\u7ea7\u522b --&gt;\n    &lt;!-- com.dimples.springboot.biz\u4e3a\u4e1a\u52a1\u903b\u8f91\u6839\u5305\uff0c\u4e5f\u5c31\u662f\u53ea\u8981\u662f\u53d1\u751f\u5728\u8fd9\u4e2a\u6839\u5305\u4e0b\u9762\u7684\u6240\u6709\u65e5\u5fd7\u64cd\u4f5c\u884c\u4e3a\u7684\u6743\u9650\u90fd\u662fDEBUG --&gt;\n    &lt;!-- \u7ea7\u522b\u4f9d\u6b21\u4e3a\u3010\u4ece\u9ad8\u5230\u4f4e\u3011\uff1aFATAL &gt; ERROR &gt; WARN &gt; INFO &gt; DEBUG &gt; TRACE  --&gt;\n    &lt;root level=&quot;info&quot;&gt;\n            &lt;appender-ref ref=&quot;CONSOLE&quot; \/&gt;\n            &lt;appender-ref ref=&quot;INFO_FILE&quot; \/&gt;\n            &lt;appender-ref ref=&quot;ERROR_FILE&quot; \/&gt;\n    &lt;\/root&gt;\n&lt;\/configuration&gt;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>springboot \u9ed8\u8ba4\u96c6\u6210\u4e86log4j\u548clogback\uff0c\u8bba\u6027\u80fdlogback\u5360\u4f18\u3002 \u6392\u9664\u6389log4j\u76f8\u5173\u7684\u5305\uff1a &lt;dependency&gt; &lt;groupId&gt;org.spri&#46;&#46;&#46;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[33],"tags":[8,88],"class_list":["post-1589","post","type-post","status-publish","format-standard","hentry","category-coding","tag-java","tag-springboot"],"views":631,"_links":{"self":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/1589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1589"}],"version-history":[{"count":1,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/1589\/revisions"}],"predecessor-version":[{"id":1590,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/1589\/revisions\/1590"}],"wp:attachment":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}