{"id":4399,"date":"2018-11-26T23:18:33","date_gmt":"2018-11-26T15:18:33","guid":{"rendered":"https:\/\/xinchewhd.com.cn\/index.php\/spring-boot\/spring-boot%e5%85%a5%e9%97%a8%ef%bc%9a%e8%87%aa%e5%ae%9a%e4%b9%89log4j%e6%97%a5%e5%bf%97%e8%be%93%e5%87%ba\/"},"modified":"2018-11-26T23:18:33","modified_gmt":"2018-11-26T15:18:33","slug":"spring-boot%e5%85%a5%e9%97%a8%ef%bc%9a%e8%87%aa%e5%ae%9a%e4%b9%89log4j%e6%97%a5%e5%bf%97%e8%be%93%e5%87%ba","status":"publish","type":"post","link":"https:\/\/xinchewhd.com.cn\/index.php\/spring-boot\/spring-boot%e5%85%a5%e9%97%a8%ef%bc%9a%e8%87%aa%e5%ae%9a%e4%b9%89log4j%e6%97%a5%e5%bf%97%e8%be%93%e5%87%ba\/","title":{"rendered":"Spring Boot\u5165\u95e8\uff1a\u81ea\u5b9a\u4e49log4j\u65e5\u5fd7\u8f93\u51fa"},"content":{"rendered":"<div class='wxsyncmain'>\n<p style=\"text-indent: 2em;\">log4j\u63d0\u4f9b\u4e86\u6807\u51c6\u7684\u65e5\u5fd7\u8f93\u51fa\uff0c\u7b80\u5355\u914d\u7f6e\u5373\u53ef\u8bb0\u5f55\u65e5\u5fd7\uff08\u53c2\u8003Spring Boot\u5165\u95e8\uff1a\u4f7f\u7528AOP\u5b9e\u73b0\u62e6\u622a\u5668 8\u3001\u65e5\u5fd7\u8bb0\u5f55\uff09\uff0c\u4f46\u4f7f\u7528\u9ed8\u8ba4Appender\u8bb0\u5f55\u65e5\u5fd7\u65f6\uff0c\u6709\u65f6\u5e76\u4e0d\u80fd\u6ee1\u8db3\u6211\u4eec\u7684\u9700\u6c42\uff0c\u8fd9\u65f6\u6211\u4eec\u53ef\u4ee5\u81ea\u5b9a\u4e49log4j\u65e5\u5fd7\u8f93\u51fa\u683c\u5f0f\u3002<\/p>\n<p style=\"text-indent: 2em;\">\u4e0b\u9762\u6211\u4eec\u5b9e\u73b0\u6309\u65e5\u671f\u8bb0\u5f55\u65e5\u5fd7\uff0c\u65e5\u5fd7\u8fbe\u5230\u6307\u5b9a\u5927\u5c0f\u540e\u91cd\u547d\u540d\u4fdd\u5b58\u4e3a\u65b0\u6587\u4ef6\u3002<\/p>\n<p style=\"text-indent: 2em;\">\u9996\u5148\u65b0\u5efaGlobalRollingFileAppender\u7ee7\u627fRollingFileAppender<\/p>\n<pre style=\"background-color:#2b2b2b;color:#a9b7c6;font-family:&#39;Lucida Sans Typewriter&#39;;font-size:12.0pt;\"><span style=\"color:#cc7832;\">import <\/span>org.apache.log4j.RollingFileAppender<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>org.apache.log4j.helpers.CountingQuietWriter<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>org.apache.log4j.helpers.LogLog<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>org.apache.log4j.spi.LoggingEvent<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>java.io.File<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>java.io.IOException<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>java.io.InterruptedIOException<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>java.text.SimpleDateFormat<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">import <\/span>java.util.Date<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#629755;font-style:italic;\"><\/span><span style=\"color:#cc7832;\">public class <\/span>GlobalRollingFileAppender <span style=\"color:#cc7832;\">extends <\/span>RollingFileAppender {    <span style=\"color:#cc7832;\">private long <\/span><span style=\"color:#9876aa;\">nextRollover <\/span>= <span style=\"color:#6897bb;\">0L<\/span><span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">  private static <\/span>SimpleDateFormat <span style=\"color:#9876aa;font-style:italic;\">simpleDateFormat <\/span>= <span style=\"color:#cc7832;\">new <\/span>SimpleDateFormat(<span style=\"color:#6a8759;\">\"yyyyMMdd\"<\/span>)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">  public void <\/span><span style=\"color:#ffc66d;\">rollOver<\/span>() {        <span style=\"color:#cc7832;\">if <\/span>(<span style=\"color:#9876aa;\">qw <\/span>!= <span style=\"color:#cc7832;\">null<\/span>) {            <span style=\"color:#cc7832;\">long <\/span>size = ((CountingQuietWriter) <span style=\"color:#9876aa;\">qw<\/span>).getCount()<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>LogLog.<span style=\"font-style:italic;\">debug<\/span>(<span style=\"color:#6a8759;\">\"rolling over count=\" <\/span>+ size)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span><span style=\"color:#9876aa;\">nextRollover <\/span>= size + <span style=\"color:#9876aa;\">maxFileSize<\/span><span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    <\/span>}        LogLog.<span style=\"font-style:italic;\">debug<\/span>(<span style=\"color:#6a8759;\">\"maxBackupIndex=\" <\/span>+ <span style=\"color:#9876aa;\">maxBackupIndex<\/span>)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    boolean <\/span>renameSucceeded = <span style=\"color:#cc7832;\">true;<\/span><span style=\"color:#cc7832;\">    if <\/span>(<span style=\"color:#9876aa;\">maxBackupIndex <\/span>&gt; <span style=\"color:#6897bb;\">0<\/span>) {            File file<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#808080;\"><\/span><span style=\"color:#808080;\">      <\/span>File target<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      for <\/span>(<span style=\"color:#cc7832;\">int <\/span>i = <span style=\"color:#9876aa;\">maxBackupIndex <\/span>- <span style=\"color:#6897bb;\">1<\/span><span style=\"color:#cc7832;\">; <\/span>i &gt;= <span style=\"color:#6897bb;\">1 <\/span>&amp;&amp; renameSucceeded<span style=\"color:#cc7832;\">; <\/span>i--) {                file = <span style=\"color:#cc7832;\">new <\/span>File(genFileName(<span style=\"color:#9876aa;\">fileName<\/span><span style=\"color:#cc7832;\">, <\/span>i))<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        if <\/span>(file.exists()) {                    target = <span style=\"color:#cc7832;\">new <\/span>File(genFileName(<span style=\"color:#9876aa;\">fileName<\/span><span style=\"color:#cc7832;\">, <\/span>i + <span style=\"color:#6897bb;\">1<\/span>))<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">          <\/span>LogLog.<span style=\"font-style:italic;\">debug<\/span>(<span style=\"color:#6a8759;\">\"Renaming file \" <\/span>+ file + <span style=\"color:#6a8759;\">\" to \" <\/span>+ target)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">          <\/span>renameSucceeded = file.renameTo(target)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        <\/span>}            }            <span style=\"color:#cc7832;\">if <\/span>(renameSucceeded) {                target = <span style=\"color:#cc7832;\">new <\/span>File(genFileName(<span style=\"color:#9876aa;\">fileName<\/span><span style=\"color:#cc7832;\">, <\/span><span style=\"color:#6897bb;\">1<\/span>))<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        this<\/span>.closeFile()<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        <\/span>file = <span style=\"color:#cc7832;\">new <\/span>File(<span style=\"color:#9876aa;\">fileName<\/span>)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        <\/span>LogLog.<span style=\"font-style:italic;\">debug<\/span>(<span style=\"color:#6a8759;\">\"Renaming file \" <\/span>+ file + <span style=\"color:#6a8759;\">\" to \" <\/span>+ target)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        <\/span>renameSucceeded = file.renameTo(target)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        if <\/span>(!renameSucceeded) {                    <span style=\"color:#cc7832;\">try <\/span>{                        <span style=\"color:#cc7832;\">this<\/span>.setFile(<span style=\"color:#9876aa;\">fileName<\/span><span style=\"color:#cc7832;\">, true, <\/span><span style=\"color:#9876aa;\">bufferedIO<\/span><span style=\"color:#cc7832;\">, <\/span><span style=\"color:#9876aa;\">bufferSize<\/span>)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">          <\/span>} <span style=\"color:#cc7832;\">catch <\/span>(IOException e) {                        <span style=\"color:#cc7832;\">if <\/span>(e <span style=\"color:#cc7832;\">instanceof <\/span>InterruptedIOException) {                            Thread.<span style=\"font-style:italic;\">currentThread<\/span>().interrupt()<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">            <\/span>}                        LogLog.<span style=\"font-style:italic;\">error<\/span>(<span style=\"color:#6a8759;\">\"setFile(\" <\/span>+ <span style=\"color:#9876aa;\">fileName <\/span>+ <span style=\"color:#6a8759;\">\", true) call failed.\"<\/span><span style=\"color:#cc7832;\">, <\/span>e)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">          <\/span>}                }            }        }        <span style=\"color:#cc7832;\">if <\/span>(renameSucceeded) {            <span style=\"color:#cc7832;\">try <\/span>{                <span style=\"color:#cc7832;\">this<\/span>.setFile(<span style=\"color:#9876aa;\">fileName<\/span><span style=\"color:#cc7832;\">, false, <\/span><span style=\"color:#9876aa;\">bufferedIO<\/span><span style=\"color:#cc7832;\">, <\/span><span style=\"color:#9876aa;\">bufferSize<\/span>)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        <\/span><span style=\"color:#9876aa;\">nextRollover <\/span>= <span style=\"color:#6897bb;\">0L<\/span><span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>} <span style=\"color:#cc7832;\">catch <\/span>(IOException e) {                <span style=\"color:#cc7832;\">if <\/span>(e <span style=\"color:#cc7832;\">instanceof <\/span>InterruptedIOException) {                    Thread.<span style=\"font-style:italic;\">currentThread<\/span>().interrupt()<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">        <\/span>}                LogLog.<span style=\"font-style:italic;\">error<\/span>(<span style=\"color:#6a8759;\">\"setFile(\" <\/span>+ <span style=\"color:#9876aa;\">fileName <\/span>+ <span style=\"color:#6a8759;\">\", false) call failed.\"<\/span><span style=\"color:#cc7832;\">, <\/span>e)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>}        }    }    <span style=\"color:#cc7832;\">private <\/span>String <span style=\"color:#ffc66d;\">genFileName<\/span>(String name<span style=\"color:#cc7832;\">, int <\/span>index) {        String fileName<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    if <\/span>(index &gt; <span style=\"color:#6897bb;\">0<\/span>) {            String num = index &lt; <span style=\"color:#6897bb;\">10 <\/span>? <span style=\"color:#6a8759;\">\"0\" <\/span>+ index : String.<span style=\"font-style:italic;\">valueOf<\/span>(index)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>fileName = name.replace(<span style=\"color:#6a8759;\">\".log\"<\/span><span style=\"color:#cc7832;\">, <\/span><span style=\"color:#6a8759;\">\"\"<\/span>) + <span style=\"color:#6a8759;\">\"_\" <\/span>+ num + <span style=\"color:#6a8759;\">\".log\"<\/span><span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    <\/span>} <span style=\"color:#cc7832;\">else <\/span>{            fileName = name<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    <\/span>}        <span style=\"color:#cc7832;\">return <\/span>fileName<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">  <\/span>}    <span style=\"color:#cc7832;\">protected void <\/span><span style=\"color:#ffc66d;\">subAppend<\/span>(LoggingEvent event) {        <span style=\"color:#cc7832;\">boolean <\/span>flag = <span style=\"color:#cc7832;\">false;<\/span><span style=\"color:#cc7832;\">    <\/span>String fileNameNow = fileName.substring(fileName.lastIndexOf(<span style=\"color:#6a8759;\">\"\/\"<\/span>))<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    <\/span>String fileNameDate = simpleDateFormat.format(<span style=\"color:#cc7832;\">new <\/span>Date())<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    if <\/span>(!fileNameNow.contains(fileNameDate)) {            flag = <span style=\"color:#cc7832;\">true;<\/span><span style=\"color:#cc7832;\">      int <\/span>tag = fileNameNow.indexOf(<span style=\"color:#6a8759;\">\"_\"<\/span>)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>fileName = fileName.replace(fileNameNow.substring(tag + <span style=\"color:#6897bb;\">1<\/span><span style=\"color:#cc7832;\">, <\/span>tag + <span style=\"color:#6897bb;\">9<\/span>)<span style=\"color:#cc7832;\">, <\/span>fileNameDate)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">    <\/span>}        <span style=\"color:#cc7832;\">if <\/span>(fileName != <span style=\"color:#cc7832;\">null <\/span>&amp;&amp; qw != <span style=\"color:#cc7832;\">null<\/span>) {            <span style=\"color:#cc7832;\">long <\/span>size = ((CountingQuietWriter) qw).getCount()<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      if <\/span>(flag) {                size = <span style=\"color:#6897bb;\">0L<\/span><span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>}            <span style=\"color:#cc7832;\">if <\/span>((size &gt;= maxFileSize &amp;&amp; size &gt;= nextRollover) || flag) {                rollOver()<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">      <\/span>}        }        <span style=\"color:#cc7832;\">super<\/span>.subAppend(event)<span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">  <\/span>}    <span style=\"color:#cc7832;\">public void <\/span>setFile(String file) {        fileName = file.trim().replace(<span style=\"color:#6a8759;\">\".log\"<\/span><span style=\"color:#cc7832;\">, <\/span><span style=\"color:#6a8759;\">\"\"<\/span>) +                <span style=\"color:#6a8759;\">\"_\" <\/span>+ simpleDateFormat.format(<span style=\"color:#cc7832;\">new <\/span>Date()) + <span style=\"color:#6a8759;\">\".log\"<\/span><span style=\"color:#cc7832;\">;<\/span><span style=\"color:#cc7832;\">  <\/span>}}<\/pre>\n<p style=\"text-indent: 2em;\">\u7136\u540e\u6211\u4eec\u5c06log4j.properties\u65e5\u5fd7\u8f93\u51faappender\u8bbe\u4e3aGlobalRollingFileAppender \uff0c\u5373log4j.appender.logInfo=cn.wbnull.springbootdemo.boot.GlobalRollingFileAppender<\/p>\n<pre style=\"background-color:#2b2b2b;color:#a9b7c6;font-family:&#39;Lucida Sans Typewriter&#39;;font-size:12.0pt;\"><span style=\"color:#cc7832;\">log4j.rootLogger<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">debug,Console,logInfo,logError,logDebug<\/span><span style=\"color:#cc7832;\">log4j.category.org.springframework<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">debug,Console,logInfo,logError,logDebug<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;font-family:&#39;Courier New&#39;;\">\u8f93\u51fa\u5230\u63a7\u5236\u53f0<\/span><span style=\"color:#cc7832;\">log4j.appender.Console<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">org.apache.log4j.ConsoleAppender<\/span><span style=\"color:#cc7832;\">log4j.appender.Console.Target<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">System.out<\/span><span style=\"color:#cc7832;\">log4j.appender.Console.layout<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">org.apache.log4j.PatternLayout<\/span><span style=\"color:#cc7832;\">log4j.appender.Console.layout.ConversionPattern<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">[%p][%d{yyyy-MM-dd HH<\/span>:<span style=\"color:#6a8759;\">mm<\/span>:<span style=\"color:#6a8759;\">ss,SSS}][%C.%M(%F<\/span>:<span style=\"color:#6a8759;\">%L)] || %m%n<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;font-family:&#39;Courier New&#39;;\">\u8f93\u51fa\u5230\u6587\u4ef6<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">cn.wbnull.springbootdemo.boot.GlobalRollingFileAppender<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.File<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">.\/logs\/log.log<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.Append<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">true<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.Threshold<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">INFO<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.MaxFileSize<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">2048KB<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.MaxBackupIndex<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">1024<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.layout<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">org.apache.log4j.PatternLayout<\/span><span style=\"color:#cc7832;\">log4j.appender.logInfo.layout.ConversionPattern<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">[%p][%d{yyyy-MM-dd HH<\/span>:<span style=\"color:#6a8759;\">mm<\/span>:<span style=\"color:#6a8759;\">ss,SSS}][%C.%M(%F<\/span>:<span style=\"color:#6a8759;\">%L)] || %m%n<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;font-family:&#39;Courier New&#39;;\">\u9519\u8bef\u65e5\u5fd7\u5355\u72ec\u8bb0\u5f55<\/span><span style=\"color:#cc7832;\">log4j.appender.logError<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">cn.wbnull.springbootdemo.boot.GlobalRollingFileAppender<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.File<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">.\/logs\/error.log<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.Append<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">true<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.Threshold<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">ERROR<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.MaxFileSize<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">2048KB<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.MaxBackupIndex<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">1024<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.layout<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">org.apache.log4j.PatternLayout<\/span><span style=\"color:#cc7832;\">log4j.appender.logError.layout.ConversionPattern<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">[%p][%d{yyyy-MM-dd HH<\/span>:<span style=\"color:#6a8759;\">mm<\/span>:<span style=\"color:#6a8759;\">ss,SSS}][%C.%M(%F<\/span>:<span style=\"color:#6a8759;\">%L)] || %m%n<\/span><span style=\"color:#808080;\">#<\/span><span style=\"color:#808080;\">#Debug<\/span><span style=\"color:#808080;font-family:&#39;Courier New&#39;;\">\u65e5\u5fd7\u5355\u72ec\u8bb0\u5f55<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">cn.wbnull.springbootdemo.boot.GlobalRollingFileAppender<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.File<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">.\/logs\/debug.log<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.Append<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">true<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.Threshold<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">DEBUG<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.MaxFileSize<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">2048KB<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.MaxBackupIndex<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">1024<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.layout<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">org.apache.log4j.PatternLayout<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.filter.infoFilter<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">org.apache.log4j.varia.LevelRangeFilter<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.filter.infoFilter.LevelMin<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">DEBUG<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.filter.infoFilter.LevelMax<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">DEBUG<\/span><span style=\"color:#cc7832;\">log4j.appender.logDebug.layout.ConversionPattern<\/span><span style=\"color:#808080;\">=<\/span><span style=\"color:#6a8759;\">[%p][%d{yyyy-MM-dd HH<\/span>:<span style=\"color:#6a8759;\">mm<\/span>:<span style=\"color:#6a8759;\">ss,SSS}][%C.%M(%F<\/span>:<span style=\"color:#6a8759;\">%L)] || %m%n<\/span><\/pre>\n<p style=\"text-indent: 2em;\">\n<p style=\"text-indent: 2em;\">\n<hr  \/>\n<p style=\"text-indent: 2em;\">\n<p style=\"text-indent: 2em;\">GitHub\uff1ahttps:\/\/github.com\/dkbnull\/SpringBootDemo<\/p>\n<p style=\"text-indent: 2em;\">CSDN\uff1ahttps:\/\/blog.csdn.net\/dkbnull\/article\/details\/84558062<\/p>\n<p style=\"text-indent: 2em;\">\n<hr  \/>\n<blockquote>\n<p>\u672c\u7bc7\u6587\u7ae0\u6765\u6e90\u4e8e\u5fae\u4fe1\u516c\u4f17\u53f7:                 \u7a0b\u5e8f\u5458null              <\/p>\n<\/blockquote>\n<\/div>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>log4j\u63d0\u4f9b\u4e86\u6807\u51c6\u7684\u65e5\u5fd7\u8f93\u51fa\uff0c\u7b80\u5355\u914d\u7f6e\u5373\u53ef\u8bb0\u5f55\u65e5\u5fd7\uff08\u53c2\u8003Spring Boot\u5165\u95e8\uff1a\u4f7f\u7528AOP\u5b9e\u73b0\u62e6\u622a\u5668 8\u3001\u65e5\u5fd7\u8bb0\u5f55\uff09\uff0c\u4f46\u4f7f\u7528 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":4396,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-4399","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-boot"],"post_thumbnail_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524153439141-150x150.jpeg","content_first_image":null,"post_medium_image_300":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524153439141-300x128.jpeg","post_thumbnail_image_624":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524153439141-1024x435.jpeg","post_frist_image":null,"post_medium_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524153439141-300x128.jpeg","post_large_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524153439141-1024x435.jpeg","post_full_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2024\/05\/20240524153439141.jpeg","post_all_images":[],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":6,"total_comments":0,"category_name":"Spring Boot","post_date":"2018-11-26","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230519082947553.jpg","avatarurls":[],"related_posts":null,"pageviews":300,"next_post_id":4395,"next_post_title":"Spring Boot\u5b9e\u6218\uff1a\u6574\u5408MyBatis\u8fde\u63a5\u6570\u636e\u5e93","previous_post_id":4408,"previous_post_title":"Spring Boot\u5165\u95e8\uff1a\u4f7f\u7528AOP\u5b9e\u73b0\u62e6\u622a\u5668","_links":{"self":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/4399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=4399"}],"version-history":[{"count":0,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/4399\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media\/4396"}],"wp:attachment":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=4399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=4399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=4399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}