<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Springboot配置保存日志文件

          共 4201字,需瀏覽 9分鐘

           ·

          2021-10-08 22:18

          點(diǎn)擊上方“碼農(nóng)突圍”,馬上關(guān)注

          這里是碼農(nóng)充電第一站,回復(fù)“666”,獲取一份專屬大禮包
          真愛,請(qǐng)?jiān)O(shè)置“星標(biāo)”或點(diǎn)個(gè)“在看

          來源:blog.csdn.net/gaopinqiang/

          article/details/109228641

          springboot日志配置:

          springboot默認(rèn)日志是打印再console中的,不會(huì)保存在文件中。我們項(xiàng)目上線肯定要保存日志用于分析的。

          一、使用xml配置日志保存(并不需要pom配置slf4j依賴,starter里面已經(jīng)配置了依賴了)

          1、在項(xiàng)目的resources目錄下創(chuàng)建一個(gè)【logback-spring.xml】日志配置文件

          名稱只要是一 logback開頭就行,測(cè)試使用log.xml并不會(huì)生成日志。合法名稱:logback.xmllogback-spring.xml

          備注:要配置logback-spring.xml,springboot會(huì)默認(rèn)加載此文件,為什么不配置logback.xml,因?yàn)?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;color: rgb(30, 107, 184);background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;">logback.xml會(huì)先application.properties加載,而logback-spring.xml會(huì)后于application.properties加載,這樣我們?cè)?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;color: rgb(30, 107, 184);background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;">application.properties文中設(shè)置日志文件名稱和文件路徑才能生效

          2、編寫xml文件內(nèi)容:


          <configuration??scan="true"?scanPeriod="60?seconds"?debug="false">
          ?<contextName>logbackcontextName>
          ?
          ?<appender?name="console"?class="ch.qos.logback.core.ConsoleAppender">
          ??<encoder>
          ???
          ???<pattern>%d{yyyy-MM-dd?HH:mm:ss.SSS}?[%thread]?%-5level?%logger?-?%msg%npattern>

          ??encoder>
          ?appender>

          ?
          ?<appender?name="logFile"??class="ch.qos.logback.core.rolling.RollingFileAppender">
          ????<Prudent>truePrudent>?
          ????<rollingPolicy?class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          ??????<FileNamePattern>
          ?????poslog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
          ??????FileNamePattern>
          ??????<maxHistory>7maxHistory>?
          ????rollingPolicy>
          ????<layout?class="ch.qos.logback.classic.PatternLayout">
          ??????<Pattern>
          ???????%d{yyyy-MM-dd?HH:mm:ss.SSS}?[%thread]?%-5level?%logger?-?%msg%n
          ??????Pattern>
          ????layout>
          ?appender>

          ?<root?level="INFO">
          ??<appender-ref?ref="console"?/>
          ??<appender-ref?ref="logFile"?/>
          ?root>

          configuration>

          上述配置的編碼中,對(duì)應(yīng)符號(hào)的含義如下

          • %d{HH:mm:ss.SSS}——日志輸出時(shí)間
          • %thread——輸出日志的進(jìn)程名字,這在Web應(yīng)用以及異步任務(wù)處理中很有用
          • %-5level——日志級(jí)別,并且使用5個(gè)字符靠左對(duì)齊
          • %logger ——日志輸出者的名字
          • %msg——日志消息
          • %n——平臺(tái)的換行符

          3、編寫打印日志

          ?private?Logger?logger?=?LoggerFactory.getLogger(TestController.class);
          ?
          ?logger.info("name?=?"?+?name?+?"?||?views?=?"?+?views);//?使用

          4、啟動(dòng)測(cè)試

          在當(dāng)前文件夾下會(huì)創(chuàng)建一個(gè)【poslog/2020-10/22】的文件夾,里面會(huì)按天生成日志:【2020-10-22.log】,例如:

          2020-10-22?16:38?[main]?INFO??org.springframework.boot.web.embedded.tomcat.TomcatWebServer?-?Tomcat?initialized?with?port(s):?8088?(http)
          2020-10-22?16:38?[main]?INFO??org.apache.coyote.http11.Http11NioProtocol?-?Initializing?ProtocolHandler?["http-nio-8088"]
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.StandardService?-?Starting?service?[Tomcat]
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.StandardEngine?-?Starting?Servlet?engine:?[Apache?Tomcat/9.0.38]
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.AprLifecycleListener?-?Loaded?Apache?Tomcat?Native?library?[1.2.23]?using?APR?version?[1.7.0].
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.AprLifecycleListener?-?APR?capabilities:?IPv6?[true],?sendfile?[true],?accept?filters?[false],?random?[true].
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.AprLifecycleListener?-?APR/OpenSSL?configuration:?useAprConnector?[false],?useOpenSSL?[true]
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.AprLifecycleListener?-?OpenSSL?successfully?initialized?[OpenSSL?1.1.1c??28?May?2019]
          2020-10-22?16:38?[main]?INFO??org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]?-?Initializing?Spring?embedded?WebApplicationContext
          2020-10-22?16:38?[main]?INFO??org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext?-?Root?WebApplicationContext:?initialization?completed?in?1422?ms
          2020-10-22?16:38?[main]?INFO??org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor?-?Initializing?ExecutorService?'applicationTaskExecutor'
          2020-10-22?16:38?[main]?INFO??org.apache.coyote.http11.Http11NioProtocol?-?Starting?ProtocolHandler?["http-nio-8088"]
          2020-10-22?16:38?[main]?INFO??org.springframework.boot.web.embedded.tomcat.TomcatWebServer?-?Tomcat?started?on?port(s):?8088?(http)?with?context?path?''
          2020-10-22?16:38?[main]?INFO??com.example.demo.DockerComposeTestApplication?-?Started?DockerComposeTestApplication?in?2.841?seconds?(JVM?running?for?3.257)

          備注:發(fā)現(xiàn)使用這個(gè)默認(rèn)不用配置pom依賴,最新的spring-boot-starter-web中已經(jīng)集成了。

          總結(jié):啟動(dòng)一個(gè)項(xiàng)目,直接將logback-spring.xml文件復(fù)制到resources目錄下就可以實(shí)現(xiàn)日志文件記錄。非常方便。

          二、進(jìn)階配置:

          分類logback.xml配置:

          日志配置到d盤了


          <configuration>
          ?
          ?<property?name="log.path"?value="d:/logback"?/>
          ?
          ?<property?name="log.pattern"?value="%d{HH:mm:ss.SSS}?[%thread]?%-5level?%logger{20}?-?[%method,%line]?-?%msg%n"?/>

          ?
          ?<appender?name="console"?class="ch.qos.logback.core.ConsoleAppender">
          ??<encoder>
          ???<pattern>${log.pattern}pattern>
          ??encoder>
          ?appender>
          ?
          ?
          ?<appender?name="file_info"?class="ch.qos.logback.core.rolling.RollingFileAppender">
          ??<file>${log.path}/sys-info.logfile>
          ??
          ??<rollingPolicy?class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          ???
          ???<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.logfileNamePattern>
          ???
          ???<maxHistory>60maxHistory>
          ??rollingPolicy>
          ??<encoder>
          ???<pattern>${log.pattern}pattern>
          ??encoder>
          ??<filter?class="ch.qos.logback.classic.filter.LevelFilter">
          ???

          ???
          ???<onMatch>ACCEPTonMatch>
          ???
          ???<onMismatch>DENYonMismatch>
          ??filter>
          ?appender>
          ?
          ?<appender?name="file_error"?class="ch.qos.logback.core.rolling.RollingFileAppender">
          ??<file>${log.path}/sys-error.logfile>
          ??
          ??<rollingPolicy?class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          ???
          ???<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.logfileNamePattern>
          ???
          ???<maxHistory>60maxHistory>
          ??rollingPolicy>
          ??<encoder>
          ???<pattern>${log.pattern}pattern>
          ??encoder>
          ??<filter?class="ch.qos.logback.classic.filter.LevelFilter">
          ???
          ???<level>ERRORlevel>
          ???
          ???<onMatch>ACCEPTonMatch>
          ???
          ???<onMismatch>DENYonMismatch>
          ??filter>
          ?appender>
          ?
          ?
          ?<appender?name="sys-user"?class="ch.qos.logback.core.rolling.RollingFileAppender">
          ??<file>${log.path}/sys-user.logfile>
          ??<rollingPolicy?class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          ???
          ???<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.logfileNamePattern>
          ???
          ???<maxHistory>60maxHistory>
          ??rollingPolicy>
          ??<encoder>
          ???<pattern>${log.pattern}pattern>
          ??encoder>
          ?appender>
          ?
          ?
          ?<logger?name="com.example"?level="debug"?/>
          ?
          ?<logger?name="org.springframework"?level="warn"?/>

          ?<root?level="info">
          ??<appender-ref?ref="console"?/>
          ?root>
          ?
          ?
          ?<root?level="info">
          ??<appender-ref?ref="file_info"?/>
          ??<appender-ref?ref="file_error"?/>
          ?root>
          ?
          ?
          ?<logger?name="sys-user"?level="info">
          ??<appender-ref?ref="sys-user"/>
          ?logger>
          configuration>?

          還可以在application.yml中配置

          #?日志配置
          logging:
          ??level:
          ????com.example:?info
          ????org.springframework:?warn

          配置info就只有info以上日志才會(huì)輸出

          如果配置 com.example: debug ,那么我們項(xiàng)目com.example包里面debug以上的日志也會(huì)輸出。

          -?END -

          最近熱文

          ? ?程序員之天梯排行榜,你在哪一級(jí)?
          ? ?提高千倍效率的 Java 代碼小技巧
          ? ?武大94年博士年薪201萬入職華為天才計(jì)劃!學(xué)霸日程表曝光!太牛逼了!
          ? ?22年前被嘲養(yǎng)豬的北大學(xué)子,如今怎么樣了?
          ? ?清華計(jì)算機(jī)系上熱搜!近9成優(yōu)秀畢業(yè)生放棄留學(xué),前50名41人留校深造

          瀏覽 55
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一起撸AV | 动漫摸无码视频 | 做受视频一区二区三区 | 国产成人主播精品视频 | 久久精品三级电影 |