
{"id":2837,"date":"2020-12-24T15:16:52","date_gmt":"2020-12-24T07:16:52","guid":{"rendered":"http:\/\/127.0.0.2\/?p=2837"},"modified":"2020-12-27T16:16:28","modified_gmt":"2020-12-27T08:16:28","slug":"2020java%e6%a1%86%e6%9e%b6%e4%b9%8b%e6%97%a5%e5%bf%97%e7%ae%a1%e7%90%86","status":"publish","type":"post","link":"https:\/\/www.9713job.com\/?p=2837","title":{"rendered":"2020java\u6846\u67b6\u4e4b\u65e5\u5fd7\u7ba1\u7406"},"content":{"rendered":"<h3>2020java\u6846\u67b6\u4e4b\u65e5\u5fd7\u7ba1\u7406<\/h3>\n<p><strong>\u65e5\u5fd7\u4ecb\u7ecd\uff1a<\/strong><\/p>\n<p>\u7528\u4e8e\u8bb0\u5f55\u7cfb\u7edf\u4e2d\u53d1\u751f\u7684\u5404\u79cd\u4e8b\u4ef6\u3002\u8bb0\u5f55\u7684\u4f4d\u7f6e\u5e38\u89c1\u7684\u6709\uff1a\u63a7\u5236\u53f0\u3001\u78c1\u76d8\u6587\u4ef6\u7b49\u3002<\/p>\n<p><strong>\u65e5\u5fd7\u7ea7\u522b\uff1a<\/strong><\/p>\n<p>\u65e5\u5fd7\u7ea7\u522b\u4ece\u4f4e\u5230\u9ad8\uff1a<\/p>\n<p>TRACE\u3001DEBUG\u3001INFO\u3001WARN\u3001ERROR\u3001FATAL<\/p>\n<p><strong>\u65e5\u5fd7\u4f5c\u7528\uff1a<\/strong><\/p>\n<p>\u901a\u8fc7\u65e5\u5fd7\u89c2\u5bdf\u3001\u5206\u6790\u9879\u76ee\u7684\u8fd0\u884c\u60c5\u51b5(\u9879\u76ee\u7ef4\u62a4)<\/p>\n<p>\u901a\u8fc7\u65e5\u5fd7\u5206\u6790\u7528\u6237\u7684\u4f7f\u7528\u60c5\u51b5(\u5927\u6570\u636e\u5206\u6790)<\/p>\n<h2><strong>\u89e3\u51b3\u65b9\u68481<\/strong><\/h2>\n<p><strong>log4j+commons-logging<\/strong><\/p>\n<p>\u5360\u4f4d\u7b26<!--more--><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-2254\" src=\"\/wp-content\/uploads\/2020\/12\/24\/12.png\" alt=\"\" width=\"680\" \/><\/p>\n<p>1.\u5bfc\u5165\u4f9d\u8d56<\/p>\n<pre>&lt;dependency&gt;\r\n    &lt;groupId&gt;log4j&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;log4j&lt;\/artifactId&gt;\r\n    &lt;version&gt;1.2.12&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n    &lt;groupId&gt;commons-logging&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;commons-logging&lt;\/artifactId&gt;\r\n    &lt;version&gt;1.2&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<p>2.\u4f7f\u7528<\/p>\n<p>1.\u5728resources\u4e0b\u65b0\u5efalog4j.xml\u6587\u4ef6<\/p>\n<pre>&lt;?xml version=\"1.0\"  encoding=\"UTF-8\" ?&gt;\r\n&lt;!DOCTYPE log4j:configuration PUBLIC \"-\/\/LOGGER\"\r\n        \"http:\/\/org\/apache\/log4j\/xml\/log4j.dtd\"&gt;\r\n&lt;log4j:configuration&gt;\r\n\r\n    &lt;!-- org.apache.log4j.ConsoleAppender \u8f93\u51fa\u5230\u63a7\u5236\u53f0 --&gt;\r\n    &lt;appender name=\"myConsole\" class=\"org.apache.log4j.ConsoleAppender\"&gt;\r\n        &lt;!--\u8f93\u51fa\u683c\u5f0f--&gt;\r\n        &lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n            &lt;param name=\"ConversionPattern\"\r\n                   value=\"%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n\"\/&gt;\r\n        &lt;\/layout&gt;\r\n    &lt;\/appender&gt;\r\n    &lt;!-- \u8f93\u51fa\u5230\u6587\u4ef6 --&gt;\r\n    &lt;appender name=\"myFile1\" class=\"org.apache.log4j.RollingFileAppender\"&gt;\r\n        &lt;param name=\"File\" value=\"d:\/log\/hello.log\"\/&gt;&lt;!--\u6587\u4ef6\u4f4d\u7f6e--&gt;\r\n        &lt;param name=\"Append\" value=\"true\"\/&gt;&lt;!--\u662f\u5426\u9009\u62e9\u8ffd\u52a0--&gt;\r\n        &lt;param name=\"MaxFileSize\" value=\"1kb\"\/&gt;&lt;!--\u6587\u4ef6\u6700\u5927\u5b57\u8282\u6570--&gt;\r\n        &lt;param name=\"MaxBackupIndex\" value=\"2\" \/&gt;&lt;!--\u65b0\u6587\u4ef6\u6570\u91cf--&gt;\r\n        &lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n            &lt;param name=\"ConversionPattern\" value=\"%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n\" \/&gt;\r\n        &lt;\/layout&gt;\r\n    &lt;\/appender&gt;\r\n\r\n    &lt;!-- \u8f93\u51fa\u5230\u6587\u4ef6 --&gt;\r\n    &lt;appender name=\"myFile2\" class=\"org.apache.log4j.DailyRollingFileAppender\"&gt;\r\n        &lt;param name=\"File\" value=\"d:\/log\/world.log\"\/&gt;&lt;!--\u6587\u4ef6\u4f4d\u7f6e--&gt;\r\n        &lt;param name=\"Append\" value=\"true\"\/&gt;&lt;!--\u662f\u5426\u9009\u62e9\u8ffd\u52a0--&gt;\r\n        &lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n            &lt;param name=\"ConversionPattern\"\r\n                   value=\"%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n\"\/&gt;\r\n        &lt;\/layout&gt;\r\n    &lt;\/appender&gt;\r\n    &lt;!-- \u6839logger\u7684\u8bbe\u7f6e--&gt;\r\n    &lt;root&gt;\r\n        &lt;!--\u4f18\u5148\u7ea7\u8bbe\u7f6e\uff0call &lt; trace &lt; debug &lt; info &lt; warn &lt; error &lt; fatal &lt; off --&gt;\r\n        &lt;priority value=\"all\"\/&gt;\r\n        &lt;appender-ref ref=\"myConsole\"\/&gt;\r\n        &lt;appender-ref ref=\"myFile1\"\/&gt;\r\n        &lt;appender-ref ref=\"myFile2\"\/&gt;\r\n    &lt;\/root&gt;\r\n&lt;\/log4j:configuration&gt;<\/pre>\n<p>3.\u6d4b\u8bd5<\/p>\n<pre>public class TestLog {\r\n    \/\/\u65e5\u5fd7\u5bf9\u8c61\r\n    private Log log= LogFactory.getLog(TestLog.class);\r\n    @Test\r\n    public void Test(){\r\n        log.trace(\"hello trace\");\r\n        log.debug(\"hello debug\");\r\n        log.info(\"hello info\");\r\n        log.warn(\"hello warn\");\r\n        log.error(\"hello error\");\r\n        log.fatal(\"hello fatal\");\r\n    }\r\n}<\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-2254\" src=\"\/wp-content\/uploads\/2020\/12\/24\/13.png\" alt=\"\" width=\"680\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-2254\" src=\"\/wp-content\/uploads\/2020\/12\/24\/14.png\" alt=\"\" width=\"680\" \/><\/p>\n<h2>\u89e3\u51b3\u65b9\u6848\u4e8c<\/h2>\n<p>logback+SLF4j<\/p>\n<p>1.\u5bfc\u5165\u4f9d\u8d56\uff1a<\/p>\n<pre>&lt;dependency&gt;\r\n    &lt;groupId&gt;ch.qos.logback&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;logback-classic&lt;\/artifactId&gt;\r\n    &lt;version&gt;1.2.3&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<p>2.\u6d4b\u8bd5\uff1a<\/p>\n<pre>public class TestLog {\r\n    \/\/\u65e5\u5fd7\u5bf9\u8c61\r\n    private Logger log2= LoggerFactory.getLogger(TestLog.class);\r\n    @Test\r\n    public void Test2(){\r\n        log2.trace(\"hello trace\");\r\n        log2.debug(\"hello debug\");\r\n        log2.info(\"hello info\");\r\n        log2.warn(\"hello warn\");\r\n        log2.error(\"hello error\");\r\n    }\r\n}<\/pre>\n<p>3.\u521b\u5efalogback.xml\u6587\u4ef6<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\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 --&gt;\r\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\r\n    \u9ed8\u8ba4\u7684\u65f6\u95f4\u95f4\u9694\u4e3a1\u5206\u949f\u3002 --&gt;\r\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;\r\n&lt;configuration  scan=\"true\" scanPeriod=\"60 seconds\" debug=\"true\"&gt;\r\n\r\n    &lt;property name=\"CONSOLE_LOG_PATTERN\"\r\n              value=\"%d{yyyy-MM-dd HH:mm:ss.SSS} |-[%-5p] in %logger.%M[line-%L] -%m%n\"\/&gt;\r\n    &lt;property name=\"log.path\" value=\"D:\/log\" \/&gt;\r\n\r\n    &lt;!-- \u8f93\u51fa\u5230\u63a7\u5236\u53f0 --&gt;\r\n    &lt;appender name=\"CONSOLE\" class=\"ch.qos.logback.core.ConsoleAppender\"&gt;\r\n        &lt;!-- Threshold=\u5373\u6700\u4f4e\u65e5\u5fd7\u7ea7\u522b\uff0c\u6b64appender\u8f93\u51fa\u5927\u4e8e\u7b49\u4e8e\u5bf9\u5e94\u7ea7\u522b\u7684\u65e5\u5fd7\r\n             (\u5f53\u7136\u8fd8\u8981\u6ee1\u8db3root\u4e2d\u5b9a\u4e49\u7684\u6700\u4f4e\u7ea7\u522b)\r\n        --&gt;\r\n        &lt;filter class=\"ch.qos.logback.classic.filter.ThresholdFilter\"&gt;\r\n            &lt;level&gt;trace&lt;\/level&gt;\r\n        &lt;\/filter&gt;\r\n        &lt;encoder&gt;\r\n            &lt;!-- \u65e5\u5fd7\u683c\u5f0f(\u5f15\u7528\u53d8\u91cf) --&gt;\r\n            &lt;Pattern&gt;${CONSOLE_LOG_PATTERN}&lt;\/Pattern&gt;\r\n            &lt;!-- \u8bbe\u7f6e\u5b57\u7b26\u96c6 --&gt;\r\n            &lt;charset&gt;UTF-8&lt;\/charset&gt;\r\n        &lt;\/encoder&gt;\r\n    &lt;\/appender&gt;\r\n\r\n    &lt;!-- \u8ffd\u52a0\u5230\u6587\u4ef6\u4e2d --&gt;\r\n    &lt;appender name=\"file\" class=\"ch.qos.logback.core.FileAppender\"&gt;\r\n        &lt;file&gt;${log.path}\/hello.log&lt;\/file&gt;\r\n        &lt;encoder&gt;\r\n            &lt;pattern&gt;${CONSOLE_LOG_PATTERN}&lt;\/pattern&gt;\r\n        &lt;\/encoder&gt;\r\n    &lt;\/appender&gt;\r\n\r\n    &lt;appender name=\"file2\" class=\"ch.qos.logback.core.rolling.RollingFileAppender\"&gt;\r\n        &lt;!-- \u6b63\u5728\u8bb0\u5f55\u7684\u65e5\u5fd7\u6587\u4ef6\u7684\u8def\u5f84\u53ca\u6587\u4ef6\u540d --&gt;\r\n        &lt;file&gt;${log.path}\/world.log&lt;\/file&gt;\r\n        &lt;!--\u65e5\u5fd7\u6587\u4ef6\u8f93\u51fa\u683c\u5f0f--&gt;\r\n        &lt;encoder&gt;\r\n            &lt;pattern&gt;${CONSOLE_LOG_PATTERN}&lt;\/pattern&gt;\r\n            &lt;charset&gt;UTF-8&lt;\/charset&gt; &lt;!-- \u8bbe\u7f6e\u5b57\u7b26\u96c6 --&gt;\r\n        &lt;\/encoder&gt;\r\n        &lt;!-- \u65e5\u5fd7\u8bb0\u5f55\u5668\u7684\u6eda\u52a8\u7b56\u7565\uff0c\u6309\u65e5\u671f\uff0c\u6309\u5927\u5c0f\u8bb0\u5f55\r\n             \u6587\u4ef6\u8d85\u8fc7\u6700\u5927\u5c3a\u5bf8\u540e\uff0c\u4f1a\u65b0\u5efa\u6587\u4ef6\uff0c\u7136\u540e\u65b0\u7684\u65e5\u5fd7\u6587\u4ef6\u4e2d\u7ee7\u7eed\u5199\u5165\r\n             \u5982\u679c\u65e5\u671f\u53d8\u66f4\uff0c\u4e5f\u4f1a\u65b0\u5efa\u6587\u4ef6\uff0c\u7136\u540e\u5728\u65b0\u7684\u65e5\u5fd7\u6587\u4ef6\u4e2d\u5199\u5165\u5f53\u5929\u65e5\u5fd7\r\n        --&gt;\r\n        &lt;rollingPolicy class=\"ch.qos.logback.core.rolling.TimeBasedRollingPolicy\"&gt;\r\n            &lt;!-- \u65b0\u5efa\u6587\u4ef6\u540e\uff0c\u539f\u65e5\u5fd7\u6539\u540d\u4e3a\u5982\u4e0b  %i=\u6587\u4ef6\u5e8f\u53f7\uff0c\u4ece0\u5f00\u59cb --&gt;\r\n            &lt;fileNamePattern&gt;${log.path}\/world-%d{yyyy-MM-dd}.%i.log&lt;\/fileNamePattern&gt;\r\n            &lt;!-- \u6bcf\u4e2a\u65e5\u5fd7\u6587\u4ef6\u7684\u6700\u5927\u4f53\u91cf --&gt;\r\n            &lt;timeBasedFileNamingAndTriggeringPolicy\r\n                    class=\"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP\"&gt;\r\n                &lt;maxFileSize&gt;1kb&lt;\/maxFileSize&gt;\r\n            &lt;\/timeBasedFileNamingAndTriggeringPolicy&gt;\r\n            &lt;!-- \u65e5\u5fd7\u6587\u4ef6\u4fdd\u7559\u5929\u6570\uff0c1=\u5219\u53ea\u4fdd\u7559\u6628\u5929\u7684\u5f52\u6863\u65e5\u5fd7\u6587\u4ef6 ,\u4e0d\u8bbe\u7f6e\u5219\u4fdd\u7559\u6240\u6709\u65e5\u5fd7--&gt;\r\n            &lt;maxHistory&gt;1&lt;\/maxHistory&gt;\r\n        &lt;\/rollingPolicy&gt;\r\n    &lt;\/appender&gt;\r\n    &lt;root level=\"trace\"&gt;\r\n        &lt;appender-ref ref=\"CONSOLE\"\/&gt;\r\n        &lt;appender-ref ref=\"file\"\/&gt;\r\n        &lt;appender-ref ref=\"file2\"\/&gt;\r\n    &lt;\/root&gt;\r\n&lt;\/configuration&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>2020java\u6846\u67b6\u4e4b\u65e5\u5fd7\u7ba1\u7406 \u65e5\u5fd7\u4ecb\u7ecd\uff1a \u7528\u4e8e\u8bb0\u5f55\u7cfb\u7edf\u4e2d\u53d1\u751f\u7684\u5404\u79cd\u4e8b\u4ef6\u3002\u8bb0\u5f55\u7684\u4f4d\u7f6e\u5e38\u89c1\u7684\u6709\uff1a\u63a7\u5236\u53f0\u3001\u78c1\u76d8\u6587\u4ef6 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-2837","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts\/2837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2837"}],"version-history":[{"count":5,"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts\/2837\/revisions"}],"predecessor-version":[{"id":2865,"href":"https:\/\/www.9713job.com\/index.php?rest_route=\/wp\/v2\/posts\/2837\/revisions\/2865"}],"wp:attachment":[{"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.9713job.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}