{"id":509,"date":"2020-12-26T16:24:23","date_gmt":"2020-12-26T08:24:23","guid":{"rendered":"http:\/\/blog.refusea.com\/?p=509"},"modified":"2020-12-26T16:24:23","modified_gmt":"2020-12-26T08:24:23","slug":"%e6%97%a5%e5%bf%97%e6%a1%86%e6%9e%b6-%e4%bb%8e-log4j-%e8%bf%81%e7%a7%bb%e5%88%b0-logback","status":"publish","type":"post","link":"https:\/\/refusea.com\/?p=509","title":{"rendered":"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback"},"content":{"rendered":"<p>\u6700\u8fd1\u628a\u9879\u76ee\u7684\u65e5\u5fd7\u6846\u67b6\u4ece log4j \u8fc1\u79fb\u5230 logback\uff0c\u8fc7\u7a0b\u91cc\u9047\u5230\u5f88\u591a\u5751\uff0c\u8bb0\u5f55\u4e0b\u6765<\/p>\n<h2>\u76ee\u6807<\/h2>\n<p>\u672c\u6b21\u8fc1\u79fb\u7684\u76ee\u6807\u5c31\u662f\u7528 slf4j+logback \u7684\u65e5\u5fd7\u6846\u67b6\u6765\u53d6\u4ee3\u76ee\u524d\u7684 slf4j+log4j<\/p>\n<h2>\u5982\u4f55\u8fc1\u79fb<\/h2>\n<h3>\u57fa\u4e8e slf4j \u7684\u65e0\u75db\u8fc1\u79fb<\/h3>\n<p>\u9879\u76ee\u672c\u8eab\u662f\u91c7\u7528\u7684 slf4j+log4j \u65e5\u5fd7\u67b6\u6784\uff0c\u6240\u4ee5\u8fc1\u79fb\u5230 logback \u57fa\u672c\u65e0\u75db<\/p>\n<p><strong>\u4fee\u6539\u4f9d\u8d56<\/strong><br \/>\n\u539f\u672c\u662f slf4j+log4\uff0c\u4f9d\u8d56\u5982\u4e0b<\/p>\n<pre><code class=\"language-xml\">  &lt;dependency&gt;\n    &lt;groupId&gt;org.slf4j&lt;\/groupId&gt;\n    &lt;artifactId&gt;slf4j-api&lt;\/artifactId&gt;\n    &lt;version&gt;1.7.25&lt;\/version&gt;\n  &lt;\/dependency&gt;\n  &lt;dependency&gt;\n    &lt;groupId&gt;org.slf4j&lt;\/groupId&gt;\n    &lt;artifactId&gt;slf4j-log4j12&lt;\/artifactId&gt;\n    &lt;version&gt;1.7.25&lt;\/version&gt;\n  &lt;\/dependency&gt;\n  &lt;dependency&gt;\n    &lt;groupId&gt;log4j&lt;\/groupId&gt;\n    &lt;artifactId&gt;log4j&lt;\/artifactId&gt;\n    &lt;version&gt;1.2.17&lt;\/version&gt;\n  &lt;\/dependency&gt;<\/code><\/pre>\n<p>\u8fc1\u79fb\u5230 slf4j+logback\uff0c\u4f9d\u8d56\u5982\u4e0b<\/p>\n<pre><code class=\"language-xml\">  &lt;dependency&gt;\n    &lt;groupId&gt;org.slf4j&lt;\/groupId&gt;\n    &lt;artifactId&gt;slf4j-api&lt;\/artifactId&gt;\n    &lt;version&gt;1.7.28&lt;\/version&gt;\n  &lt;\/dependency&gt;\n  &lt;dependency&gt;\n    &lt;groupId&gt;ch.qos.logback&lt;\/groupId&gt;\n    &lt;artifactId&gt;logback-classic&lt;\/artifactId&gt;\n    &lt;version&gt;1.2.3&lt;\/version&gt;\n  &lt;\/dependency&gt;<\/code><\/pre>\n<p><strong>\u4fee\u6539\u65e5\u5fd7\u914d\u7f6e<\/strong><br \/>\nlogback \u7684\u914d\u7f6e\u6587\u4ef6\u4e3a logback.xml\uff0c\u66ff\u6362\u6389 log4j.xml<\/p>\n<pre><code class=\"language-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;configuration debug=&quot;true&quot; scan=&quot;false&quot;&gt;\n\n    &lt;property name=&quot;log.path&quot; value=&quot;\/data\/dev\/&quot; \/&gt;\n    &lt;property name=&quot;app.name&quot; value=&quot;dev-api&quot; \/&gt;\n\n    &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;\n        &lt;encoder&gt;\n            &lt;pattern&gt;%date{HH:mm:ss.SSS} [%-5level] [%logger:%L] %mdc{sid:--} - %msg%n&lt;\/pattern&gt;\n            &lt;charset&gt;UTF-8&lt;\/charset&gt;\n        &lt;\/encoder&gt;\n        &lt;filter class=&quot;ch.qos.logback.classic.filter.ThresholdFilter&quot;&gt;\n            &lt;level&gt;DEBUG&lt;\/level&gt;\n        &lt;\/filter&gt;\n    &lt;\/appender&gt;\n\n    &lt;appender name=&quot;FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;\n        &lt;file&gt;${log.path}\/${app.name}.log&lt;\/file&gt;\n        &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.TimeBasedRollingPolicy&quot;&gt;\n            &lt;fileNamePattern&gt;${log.path}\/${app.name}.log.%d{yyyy-MM-dd}\n            &lt;\/fileNamePattern&gt;\n        &lt;\/rollingPolicy&gt;\n        &lt;encoder&gt;\n            &lt;!-- %L not support when use async appender --&gt;\n            &lt;pattern&gt;%date{HH:mm:ss.SSS} [%-5level] [%logger] %mdc{sid:--} - %msg%n&lt;\/pattern&gt;\n            &lt;charset&gt;UTF-8&lt;\/charset&gt;\n        &lt;\/encoder&gt;\n        &lt;filter class=&quot;ch.qos.logback.classic.filter.ThresholdFilter&quot;&gt;\n            &lt;level&gt;DEBUG&lt;\/level&gt;\n        &lt;\/filter&gt;\n    &lt;\/appender&gt;\n\n    &lt;appender name=&quot;ASYNC_FILE&quot; class=&quot;ch.qos.logback.classic.AsyncAppender&quot;&gt;\n        &lt;discardingThreshold&gt;0&lt;\/discardingThreshold&gt;\n        &lt;!-- One and only one appender may be attached to AsyncAppender --&gt;\n        &lt;appender-ref ref=&quot;FILE&quot; \/&gt;\n    &lt;\/appender&gt;\n\n    &lt;!-- note: in production environment set INFO level --&gt;\n    &lt;logger name=&quot;com.refusea&quot;&gt;\n        &lt;level value=&quot;INFO&quot; \/&gt;\n    &lt;\/logger&gt;\n\n    &lt;root level=&quot;ERROR&quot;&gt;\n        &lt;appender-ref ref=&quot;ASYNC_FILE&quot; \/&gt;\n        &lt;appender-ref ref=&quot;CONSOLE&quot; \/&gt;\n    &lt;\/root&gt;\n\n&lt;\/configuration&gt;<\/code><\/pre>\n<p><strong>web \u9879\u76ee\u521d\u59cb\u5316\u65e5\u5fd7<\/strong><br \/>\n\u589e\u52a0\u5982\u4e0b\u4f9d\u8d56<\/p>\n<pre><code class=\"language-xml\">&lt;dependency&gt;\n    &lt;groupId&gt;org.logback-extensions&lt;\/groupId&gt;\n    &lt;artifactId&gt;logback-ext-spring&lt;\/artifactId&gt;\n    &lt;version&gt;0.1.5&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<p><strong>\u5728 web.xml \u91cc\u589e\u52a0\u5982\u4e0b\u76d1\u542c\u5668<\/strong><\/p>\n<pre><code class=\"language-xml\">    &lt;context-param&gt;\n        &lt;param-name&gt;logbackConfigLocation&lt;\/param-name&gt;\n        &lt;param-value&gt;classpath:config\/logback.xml&lt;\/param-value&gt;\n    &lt;\/context-param&gt;\n    &lt;listener&gt;\n        &lt;listener-class&gt;ch.qos.logback.ext.spring.web.LogbackConfigListener&lt;\/listener-class&gt;\n    &lt;\/listener&gt;<\/code><\/pre>\n<h3>\u4ece log4j \u8fc1\u79fb<\/h3>\n<p>\u9879\u76ee\u91cc\u4f9d\u8d56\u4e86\u5176\u4ed6\u4e00\u4e9b\u5e93\uff0c\u53ef\u4ee5\u7528 maven \u547d\u4ee4 <code>mvn dependency:tree<\/code> \u6765\u67e5\u770b\u4e0b\uff0c\u90fd\u6709\u54ea\u4e9b\u5e93\u8fd8\u7528\u5230\u4e86 log4j\uff0c\u5982\u679c\u8fd9\u4e9b\u5e93\u4e5f\u662f slf4j+log4j \u7684\u67b6\u6784\u90a3\u5c31\u4e07\u4e8b\u5927\u5409\uff0c\u4f46\u4e5f\u6709\u7684\u5e93\u76f4\u63a5\u7528\u7684 log4j\uff0c\u8fd9\u6837\u5c31\u9ebb\u70e6\u4e86<\/p>\n<p>\u6839\u636e slf4j \u7684\u6587\u6863\uff0c\u4f7f\u7528 log4j \u6865\u63a5\u5668  log4j-over-slf4j \u6765\u66ff\u6362 log4j \u4f9d\u8d56\uff1a\u5373\u5728\u6240\u6709\u4f9d\u8d56\u5230 log4j \u7684\u5e93\u4e0a\u6392\u9664 log4j \u7684\u4f9d\u8d56\uff0c\u5e76\u6dfb\u52a0 log4j-over-slf4j \u4f9d\u8d56\uff0c\u5982\u4e0b<\/p>\n<pre><code class=\"language-xml\">&lt;dependency&gt;\n    &lt;groupId&gt;com.refusea.framework&lt;\/groupId&gt;\n    &lt;artifactId&gt;framework-service&lt;\/artifactId&gt;\n    &lt;version&gt;2.0.0-RC01&lt;\/version&gt;\n    &lt;scope&gt;compile&lt;\/scope&gt;\n    &lt;exclusions&gt;\n    &lt;exclusion&gt;\n      &lt;artifactId&gt;log4j&lt;\/artifactId&gt;\n      &lt;groupId&gt;log4j&lt;\/groupId&gt;\n    &lt;\/exclusion&gt;\n&lt;\/dependency&gt;\n\n&lt;dependency&gt;\n    &lt;groupId&gt;org.slf4j&lt;\/groupId&gt;\n    &lt;artifactId&gt;log4j-over-slf4j&lt;\/artifactId&gt;\n    &lt;version&gt;1.7.28&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<h3>\u5176\u4ed6\u65e5\u5fd7\u6846\u67b6(jul\/jcl\/log4j2\/&#8230;)<\/h3>\n<p>\u548c log4j \u7c7b\u4f3c\uff0cslf4j \u8fd8\u4e3a\u5176\u4ed6\u65e5\u5fd7\u6846\u67b6\u63d0\u4f9b\u4e86 xxx-over-slf4j \u6865\u63a5\u5668\uff0c\u6bd4\u5982 jcl-over-slf4j\uff0c\u5982\u679c\u7528\u5230\u4e86\u5bf9\u5e94\u7684\u65e5\u5fd7\u6846\u67b6\uff0c\u53ea\u9700\u8981\u5728\u4f9d\u8d56\u91cc\u6392\u9664\u8be5\u65e5\u5fd7\u6846\u67b6\u4f9d\u8d56\uff0c\u5e76\u6dfb\u52a0\u5bf9\u5e94\u7684\u6865\u63a5\u5668\u5373\u53ef<\/p>\n<p>\u8fd9\u91cc\u8981\u7279\u522b\u63d0\u4e00\u4e0b jul(java.util.logging)\uff0c\u7531\u4e8e\u8fd9\u4e2a\u65e5\u5fd7\u6846\u67b6\u5185\u7f6e\u5728 jdk \u5185\uff0c\u65e0\u6cd5\u901a\u8fc7\u7f6e\u6362\u4f9d\u8d56\u7684\u65b9\u5f0f\u6765\u6865\u63a5\uff0c\u6240\u4ee5\u9700\u8981\u9879\u76ee\u81ea\u5df1\u8c03\u7528\u4e00\u4e0b\u6865\u63a5\u5668\u7684\u65b9\u6cd5\uff0c\u5728\u9879\u76ee\u521d\u59cb\u5316\u65f6\u6267\u884c\u5982\u4e0b\u4ee3\u7801\u5373\u53ef<\/p>\n<pre><code class=\"language-java\">SLF4JBridgeHandler.removeHandlersForRootLogger();\nSLF4JBridgeHandler.install();<\/code><\/pre>\n<p>\u4e5f\u8bb8\u662f\u56e0\u4e3a\u8fd9\u4e2a\u539f\u56e0\uff0cjul \u7684\u6865\u63a5\u5668\u540d\u5b57\u662f jul-to-slf4j \u800c\u4e0d\u662f jul-over-sl4fj<\/p>\n<h2>\u5c0f\u5fc3\u6b7b\u5faa\u73af<\/h2>\n<p><strong>\u8d77\u56e0<\/strong><br \/>\n\u4f7f\u7528 slf4j \u6865\u63a5\u65b9\u5f0f\u65f6\uff0c\u9700\u8981\u6ce8\u610f\u907f\u514d\u6b7b\u5faa\u73af\uff0c\u4ee5\u6865\u63a5 log4j \u4e3a\u4f8b\u8bf4\u660e<\/p>\n<p>slf4j+log4j \u8981\u7528\u5230 slf4j-log4j12\uff0c\u8fd9\u4e2a\u5e93\u7684\u4f5c\u7528\u662f\u5c06 log4j \u9002\u914d\u5230 slf4j\uff0c\u5176\u8c03\u7528\u903b\u8f91\u5982\u4e0b\u56fe<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/static.refusea.com\/2020\/12\/log4j1.png\" alt=\"\" \/><\/p>\n<p>\u5982\u679c\u5728\u6865\u63a5 log4j \u65f6\u7cfb\u7edf\u91cc\u8fd8\u5b58\u5728 slf4j-log4j12 \u5e93\uff0c\u5c31\u4f1a\u5bfc\u81f4\u5982\u4e0b\u7684\u8c03\u7528\u903b\u8f91<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/static.refusea.com\/2020\/12\/log4j2.png\" alt=\"\" \/><\/p>\n<p>\u53ef\u4ee5\u53d1\u73b0\u8fd9\u6837\u4f1a\u5bfc\u81f4\u6b7b\u5faa\u73af\uff0c\u89e3\u51b3\u7684\u529e\u6cd5\u5f88\u7b80\u5355\uff1a\u4ece\u6240\u6709\u4f9d\u8d56\u91cc\u6392\u9664 slf4j-log4j12 \u5e93<\/p>\n<h2>maven-enforcer-plugin<\/h2>\n<p>\u73b0\u5728\u4f60\u6392\u9664\u4e86\u6240\u6709\u53ef\u80fd\u5bfc\u81f4\u6b7b\u5faa\u73af\u7684\u4f9d\u8d56\uff0c\u4f46\u662f\u67d0\u5929\u4f60\u5f15\u5165\u4e86\u4e00\u4e2a\u65b0\u7684\u4f9d\u8d56\uff0c\u4e00\u65f6\u758f\u5ffd\uff0c\u6ca1\u6709\u6392\u67e5\u8fd9\u4e2a\u65b0\u7684\u4f9d\u8d56\u662f\u5426\u4f20\u9012\u4e86 slf4j-logj12\uff0c\u90a3\u5c31\u5b58\u5728\u6b7b\u5faa\u73af\u7684\u98ce\u9669\uff1b\u53e6\u4e00\u65b9\u9762\uff0c\u5c31\u7b97\u4f60\u80fd\u4fdd\u8bc1\u81ea\u5df1\u6bcf\u6b21\u90fd\u4e0d\u4f1a\u758f\u5ffd\uff0c\u4f46\u662f\u4f60\u80fd\u4fdd\u8bc1\u9879\u76ee\u91cc\u7684\u5176\u4ed6\u5f00\u53d1\u4eba\u5458\u4e5f\u4f1a\u5728\u5f15\u5165\u65b0\u4f9d\u8d56\u65f6\u8fdb\u884c\u68c0\u67e5\u5417\uff1f<\/p>\n<p>\u8fd9\u79cd\u60c5\u51b5\uff0c\u53ef\u4ee5\u4f7f\u7528 maven \u63d2\u4ef6 maven-enforcer-plugin \u6765\u5e2e\u6211\u4eec\u68c0\u67e5\uff0c\u628a\u4f60\u60f3\u8981\u6392\u9664\u7684\u4f9d\u8d56\u914d\u7f6e\u4e00\u6b21\u5373\u53ef<\/p>\n<pre><code class=\"language-xml\">&lt;plugin&gt;\n    &lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;\n    &lt;artifactId&gt;maven-enforcer-plugin&lt;\/artifactId&gt;\n    &lt;version&gt;3.0.0-M2&lt;\/version&gt;\n    &lt;executions&gt;\n        &lt;execution&gt;\n            &lt;id&gt;enforce&lt;\/id&gt;\n            &lt;goals&gt;\n                &lt;goal&gt;enforce&lt;\/goal&gt;\n            &lt;\/goals&gt;\n            &lt;configuration&gt;\n                &lt;rules&gt;\n                    &lt;banDuplicatePomDependencyVersions \/&gt;\n                    &lt;requireMavenVersion&gt;\n                        &lt;version&gt;3.2.5&lt;\/version&gt;\n                        &lt;message&gt;maven version must be 3.2.5 or above&lt;\/message&gt;\n                    &lt;\/requireMavenVersion&gt;\n                    &lt;requireJavaVersion&gt;\n                        &lt;version&gt;1.7&lt;\/version&gt;\n                    &lt;\/requireJavaVersion&gt;\n                    &lt;bannedDependencies&gt;\n                        &lt;!-- avoid dependency conflict --&gt;\n                        &lt;excludes&gt;\n                            &lt;exclude&gt;log4j:*&lt;\/exclude&gt;\n                            &lt;exclude&gt;org.apache.logging.log4j:*&lt;\/exclude&gt;\n                            &lt;exclude&gt;commons-logging:commons-logging&lt;\/exclude&gt;\n                            &lt;exclude&gt;org.slf4j:slf4j-log4j12&lt;\/exclude&gt;\n                            &lt;exclude&gt;org.slf4j:slf4j-jcl&lt;\/exclude&gt;\n                            &lt;exclude&gt;org.slf4j:slf4j-jdk14&lt;\/exclude&gt;\n                        &lt;\/excludes&gt;\n                        &lt;message&gt;DO NOT use any other logger framework beyond slf4j+logback&lt;\/message&gt;\n                    &lt;\/bannedDependencies&gt;\n                &lt;\/rules&gt;\n            &lt;\/configuration&gt;\n        &lt;\/execution&gt;\n    &lt;\/executions&gt;\n&lt;\/plugin&gt;<\/code><\/pre>\n<h2>jcl \u7684\u5751<\/h2>\n<p>jcl\uff0c\u5373 The Apache Commons Logging\uff0c\u4e5f\u662f\u5e7f\u6cdb\u5e94\u7528\u7684\u65e5\u5fd7\u6846\u67b6\uff0c\u5728\u8fc1\u79fb\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u6392\u9664\u8be5\u65e5\u5fd7\u7ec4\u4ef6\u5e76\u7528 jcl-over-slf4j \u6765\u53d6\u4ee3\u5b83\uff0c\u5e76\u901a\u8fc7 maven-enforcer-plugin \u6765\u907f\u514d\u5c06\u53ef\u80fd\u5bfc\u81f4\u6b7b\u5faa\u73af\u7684\u4f9d\u8d56\u6253\u5305<\/p>\n<p>\u95ee\u9898\u662f\u8fd9\u4e00\u5957\u770b\u4e0a\u53bb\u65e0\u61c8\u53ef\u51fb\u7684\u6d41\u7a0b\u6709\u6f0f\u6d1e\uff1a\u6ca1\u6709 jcl\uff0cmaven-assembly-plugin \u8fd9\u4e2a\u63d2\u4ef6\u65e0\u6cd5\u5de5\u4f5c\uff1b\u800c\u4e14\u8fd9\u4e2a\u63d2\u4ef6\u4f1a\u628a jcl \u5f3a\u884c\u585e\u5230\u6700\u7ec8\u8f93\u51fa\u7684 zip \u91cc\uff0c\u5e76\u4e0d\u4f1a\u89e6\u53d1 maven-enforcer-plugin \u914d\u7f6e\u7684\u6392\u9664\u89c4\u5219<\/p>\n<p>\u7ecf\u8fc7\u4e00\u756a\u7814\u7a76\uff0c\u53d1\u73b0\u628a jcl \u7684 scope \u8bbe\u4e3a provided \u53ef\u4ee5\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898<\/p>\n<pre><code class=\"language-xml\">&lt;dependency&gt;\n    &lt;groupId&gt;commons-logging&lt;\/groupId&gt;\n    &lt;artifactId&gt;commons-logging&lt;\/artifactId&gt;\n    &lt;version&gt;1.2&lt;\/version&gt;\n    &lt;scope&gt;provided&lt;\/scope&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u628a\u9879\u76ee\u7684\u65e5\u5fd7\u6846\u67b6\u4ece log4j \u8fc1\u79fb\u5230 logback\uff0c\u8fc7\u7a0b\u91cc\u9047\u5230\u5f88\u591a\u5751\uff0c\u8bb0\u5f55\u4e0b\u6765 \u76ee\u6807 \u672c\u6b21\u8fc1\u79fb\u7684\u76ee\u6807\u5c31 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[52,51],"class_list":["post-509","post","type-post","status-publish","format-standard","hentry","category-java","tag-log4j","tag-logback"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback - \u62d2\u6d77\u7a7a\u95f4<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/refusea.com\/?p=509\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"refusea.com\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/refusea.com\/?p=509#article\",\"isPartOf\":{\"@id\":\"https:\/\/refusea.com\/?p=509\"},\"author\":{\"name\":\"refusea.com\",\"@id\":\"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df\"},\"headline\":\"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback\",\"datePublished\":\"2020-12-26T08:24:23+00:00\",\"dateModified\":\"2020-12-26T08:24:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/refusea.com\/?p=509\"},\"wordCount\":129,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df\"},\"image\":{\"@id\":\"https:\/\/refusea.com\/?p=509#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.refusea.com\/2020\/12\/log4j1.png\",\"keywords\":[\"log4j\",\"logback\"],\"articleSection\":[\"Java\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/refusea.com\/?p=509#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/refusea.com\/?p=509\",\"url\":\"https:\/\/refusea.com\/?p=509\",\"name\":\"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback - \u62d2\u6d77\u7a7a\u95f4\",\"isPartOf\":{\"@id\":\"https:\/\/refusea.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/refusea.com\/?p=509#primaryimage\"},\"image\":{\"@id\":\"https:\/\/refusea.com\/?p=509#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.refusea.com\/2020\/12\/log4j1.png\",\"datePublished\":\"2020-12-26T08:24:23+00:00\",\"dateModified\":\"2020-12-26T08:24:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/refusea.com\/?p=509#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/refusea.com\/?p=509\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/refusea.com\/?p=509#primaryimage\",\"url\":\"https:\/\/static.refusea.com\/2020\/12\/log4j1.png\",\"contentUrl\":\"https:\/\/static.refusea.com\/2020\/12\/log4j1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/refusea.com\/?p=509#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/refusea.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/refusea.com\/#website\",\"url\":\"https:\/\/refusea.com\/\",\"name\":\"\u62d2\u6d77\u7a7a\u95f4\",\"description\":\"\u62d2\u6d77\u7684\u4e2a\u4eba\u535a\u5ba2\",\"publisher\":{\"@id\":\"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/refusea.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df\",\"name\":\"refusea.com\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/refusea.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7f7489b4afdbd952db64e7a6704d1258?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7f7489b4afdbd952db64e7a6704d1258?s=96&d=mm&r=g\",\"caption\":\"refusea.com\"},\"logo\":{\"@id\":\"https:\/\/refusea.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/refusea.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback - \u62d2\u6d77\u7a7a\u95f4","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/refusea.com\/?p=509","twitter_misc":{"\u4f5c\u8005":"refusea.com","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/refusea.com\/?p=509#article","isPartOf":{"@id":"https:\/\/refusea.com\/?p=509"},"author":{"name":"refusea.com","@id":"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df"},"headline":"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback","datePublished":"2020-12-26T08:24:23+00:00","dateModified":"2020-12-26T08:24:23+00:00","mainEntityOfPage":{"@id":"https:\/\/refusea.com\/?p=509"},"wordCount":129,"commentCount":0,"publisher":{"@id":"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df"},"image":{"@id":"https:\/\/refusea.com\/?p=509#primaryimage"},"thumbnailUrl":"https:\/\/static.refusea.com\/2020\/12\/log4j1.png","keywords":["log4j","logback"],"articleSection":["Java"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/refusea.com\/?p=509#respond"]}]},{"@type":"WebPage","@id":"https:\/\/refusea.com\/?p=509","url":"https:\/\/refusea.com\/?p=509","name":"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback - \u62d2\u6d77\u7a7a\u95f4","isPartOf":{"@id":"https:\/\/refusea.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/refusea.com\/?p=509#primaryimage"},"image":{"@id":"https:\/\/refusea.com\/?p=509#primaryimage"},"thumbnailUrl":"https:\/\/static.refusea.com\/2020\/12\/log4j1.png","datePublished":"2020-12-26T08:24:23+00:00","dateModified":"2020-12-26T08:24:23+00:00","breadcrumb":{"@id":"https:\/\/refusea.com\/?p=509#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/refusea.com\/?p=509"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/refusea.com\/?p=509#primaryimage","url":"https:\/\/static.refusea.com\/2020\/12\/log4j1.png","contentUrl":"https:\/\/static.refusea.com\/2020\/12\/log4j1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/refusea.com\/?p=509#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/refusea.com\/"},{"@type":"ListItem","position":2,"name":"\u65e5\u5fd7\u6846\u67b6 \u4ece log4j \u8fc1\u79fb\u5230 logback"}]},{"@type":"WebSite","@id":"https:\/\/refusea.com\/#website","url":"https:\/\/refusea.com\/","name":"\u62d2\u6d77\u7a7a\u95f4","description":"\u62d2\u6d77\u7684\u4e2a\u4eba\u535a\u5ba2","publisher":{"@id":"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/refusea.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":["Person","Organization"],"@id":"https:\/\/refusea.com\/#\/schema\/person\/b5393cc8b15717000d19424552aae0df","name":"refusea.com","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/refusea.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7f7489b4afdbd952db64e7a6704d1258?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7f7489b4afdbd952db64e7a6704d1258?s=96&d=mm&r=g","caption":"refusea.com"},"logo":{"@id":"https:\/\/refusea.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/refusea.com"]}]}},"_links":{"self":[{"href":"https:\/\/refusea.com\/index.php?rest_route=\/wp\/v2\/posts\/509"}],"collection":[{"href":"https:\/\/refusea.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/refusea.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/refusea.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/refusea.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=509"}],"version-history":[{"count":4,"href":"https:\/\/refusea.com\/index.php?rest_route=\/wp\/v2\/posts\/509\/revisions"}],"predecessor-version":[{"id":515,"href":"https:\/\/refusea.com\/index.php?rest_route=\/wp\/v2\/posts\/509\/revisions\/515"}],"wp:attachment":[{"href":"https:\/\/refusea.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/refusea.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/refusea.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}