<bdo id="k5gtg"></bdo>
    1. <abbr id="k5gtg"><listing id="k5gtg"></listing></abbr>
    2. <rt id="k5gtg"><menu id="k5gtg"></menu></rt>
      1. <center id="k5gtg"><big id="k5gtg"></big></center>
        豆国产97在线 | 亚洲,综合在线 亚洲 成人 欧美 ,久久久久国产精品熟女影院,亚洲精品国产av成拍色拍个,国产福利酱国产一区二区,在线无码午夜福利高潮视频,久久精品蜜芽亚洲国产AV,欧美视频精品免费覌看

        Springboot2 集成log4j2

        在任何定制系統開發過程中,健全的日志系統是調試、運維、追查故障的重要保障,因為log4j頻頻爆出漏洞,魁鯨科技目前主要使用log4j2這個組件替代

        基礎步驟

        • Spring Boot默認使用的是logback框架,因此需要排除spring-boot-starter-logging
        • 然后引入log4j2框架
        • 配置文件設置使用log4j2的配置路徑
        • 程序代碼種使用日志門面slf4j框架打印日志。

        修改pom.xml文件

        spring-boot-starter-web種排除默認的logging包

        <!-- springboot dependencies -->
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-web</artifactId>
                      <version>${spring-boot-starter.version}</version>
                      <exclusions>
                          <exclusion>
                              <groupId>org.springframework.boot</groupId>
                              <artifactId>spring-boot-starter-logging</artifactId>
                          </exclusion>
                      </exclusions>
                  </dependency>

        通過依賴樹排除第三方的框架內對logback等沖突包的依賴
        Springboot2 集成log4j2

        Springboot2 集成log4j2

        找到并排除

        Springboot2 集成log4j2

        在resource目錄下新增log4j2的配置文件

        <?xml version="1.0" encoding="UTF-8"?> <!--日志級別以及優先級排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration后面的status,這個用于設置log4j2自身內部的信息輸出,可以不設置,當設置成trace時,你會看到log4j2內部各種詳細輸出--> <!--monitorInterval:Log4j能夠自動檢測修改配置 文件和重新配置本身,設置間隔秒數-->
        <configuration status="WARN" monitorInterval="30">  <!-- 配置日志文件輸出目錄,此配置將日志輸出到tomcat根目錄下的指定文件夾 -->
            <properties>
                <property name="LOG_HOME">./WebAppLogs/logs</property>
            </properties>
            <!--先定義所有的appender-->
            <appenders>    <!-- 優先級從高到低分別是 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL -->
                <!-- 單詞解釋: Match:匹配 DENY:拒絕 Mismatch:不匹配 ACCEPT:接受 -->
                <!-- DENY,日志將立即被拋棄不再經過其他過濾器; NEUTRAL,有序列表里的下個過濾器過接著處理日志; ACCEPT,日志會被立即處理,不再經過剩余過濾器。 -->
                <!--輸出日志的格式     %d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生產時間     %p : 日志輸出格式     %c : logger的名稱     %m : 日志內容,即 logger.info("message")     %n : 換行符     %C : Java類名     %L : 日志輸出所在行數     %M : 日志輸出所在方法名     hostName : 本地機器名     hostAddress : 本地ip地址 -->
                <!--這個輸出控制臺的配置-->
                <console name="Console" target="SYSTEM_OUT">      <!--輸出日志的格式-->
                    <PatternLayout pattern="[%d{HH:mm:ss:SSS}] - [%t] [%p] - %logger{1.} - %m%n"/>
                    <!--<PatternLayout pattern="[%d{HH:mm:ss:SSS}] - (%F:%l) - %m%n"/>-->
                    <!--<PatternLayout pattern="[%d{HH:mm:ss:SSS}] (%F:%L) %m%n" />-->
                </console>
                <!-- 這個會打印出所有的info及以下級別的信息,每次大小超過size,則這size大小的日志會自動存入按年份-月份建立的文件夾下面并進行壓縮,作為存檔-->
                <!-- TRACE級別日志 ; 設置日志格式并配置日志壓縮格式,壓縮文件獨立放在一個文件夾內, 日期格式不能為冒號,否則無法生成,因為文件名不允許有冒號,此appender只輸出trace級別的數據到trace.log -->
        
                <RollingFile name="RollingFileTrace" immediateFlush="true" fileName="${LOG_HOME}/trace.log"
                             filePattern="${LOG_HOME}/trace_%d{yyyy-MM-dd-HH}-%i.log.zip">
                    <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
        
                    <PatternLayout pattern="[%d{HH:mm:ss:SSS}] - [%t] [%p] - %logger{36} - %m%n"/>
        
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        
                        <SizeBasedTriggeringPolicy size="10 MB"/>
        
                    </Policies>
                    <!-- DefaultRolloverStrategy屬性如不設置,則默認為最多同一文件夾下7個文件,這里設置了20 -->
                    <DefaultRolloverStrategy max="20">
                        <!--這里的age必須和filePattern協調, 后者是精確到HH, 這里就要寫成xH, xd就不起作用           另外, 數字最好>2, 否則可能造成刪除的時候, 最近的文件還處于被占用狀態,導致刪除不成功!-->
        
                        <Delete basePath="${LOG_HOME}" maxDepth="2">
                            <IfFileName glob="trace_*.zip"/>
                            <!-- 保存時間與filePattern相同即可 -->
                            <!-- 如果filePattern為:yyyy-MM-dd-HH:mm:ss, age也可以為5s,表示日志存活時間為5s -->
                            <IfLastModified age="168H"/>
        
                        </Delete>
        
                    </DefaultRolloverStrategy>
        
                </RollingFile>
        
                <RollingFile name="RollingFileDebug" immediateFlush="true" fileName="${LOG_HOME}/debug.log"
                             filePattern="${LOG_HOME}/debug_%d{yyyy-MM-dd-HH}-%i.log.zip">
                    <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
        
                    <PatternLayout pattern="[%d{HH:mm:ss:SSS}] - [%t] [%p] - %logger{36} - %m%n"/>
        
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        
                        <SizeBasedTriggeringPolicy size="10 MB"/>
        
                    </Policies>
        
                    <DefaultRolloverStrategy max="20">
                        <Delete basePath="${LOG_HOME}" maxDepth="2">
                            <IfFileName glob="debug_*.zip"/>
        
                            <IfLastModified age="168H"/>
        
                        </Delete>
        
                    </DefaultRolloverStrategy>
        
                </RollingFile>     <!-- info日志配置 -->
                <RollingFile name="RollingFileInfo" immediateFlush="true"
                             fileName="${LOG_HOME}/info.log"
                             filePattern="${LOG_HOME}/info_%d{yyyy-MM-dd-HH}-%i.log.zip">       <!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)-->
                    <ThresholdFilter
                            level="info" onMatch="ACCEPT" onMismatch="DENY"/>
                    <PatternLayout
                            pattern="[%d{HH:mm:ss:SSS}] - [%t] [%p] - %logger{36} - %m%n"/>
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        
                        <SizeBasedTriggeringPolicy size="10 MB"/>
        
                    </Policies>
                    <DefaultRolloverStrategy max="20">
                        <Delete basePath="${LOG_HOME}" maxDepth="2">
                            <IfFileName glob="info_*.zip"/>
        
                            <IfLastModified age="168H"/>
        
                        </Delete>
        
                    </DefaultRolloverStrategy>
                </RollingFile>     <!-- warn日志配置 -->
                <RollingFile name="RollingFileWarn"
                             immediateFlush="true"
                             fileName="${LOG_HOME}/warn.log" filePattern="${LOG_HOME}/warn_%d{yyyy-MM-dd-HH}-%i.log.zip">
                    <ThresholdFilter
                            level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
                    <PatternLayout
                            pattern="[%d{HH:mm:ss:SSS}] - [%t] [%p] - %logger{36} - %m%n"/>
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        
                        <SizeBasedTriggeringPolicy size="10 MB"/>
        
                    </Policies>
                    <DefaultRolloverStrategy max="20">
                        <Delete basePath="${LOG_HOME}" maxDepth="2">
                            <IfFileName glob="warn_*.zip"/>
        
                            <IfLastModified age="168H"/>
        
                        </Delete>
        
                    </DefaultRolloverStrategy>
                </RollingFile>     <!-- error日志配置 -->
                <RollingFile
                        name="RollingFileError" immediateFlush="true"
                        fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error_%d{yyyy-MM-dd-HH}-%i.log.zip">
                    <ThresholdFilter
                            level="error" onMatch="ACCEPT" onMismatch="DENY"/>
                    <PatternLayout
                            pattern="[%d{HH:mm:ss:SSS}] - [%t] [%p] - %logger{36} - %m%n"/>
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        
                        <SizeBasedTriggeringPolicy size="10 MB"/>
        
                    </Policies>
                    <DefaultRolloverStrategy max="20">
                        <Delete basePath="${LOG_HOME}" maxDepth="2">
                            <IfFileName glob="error_*.zip"/>
        
                            <IfLastModified age="168H"/>
        
                        </Delete>
        
                    </DefaultRolloverStrategy>
                </RollingFile>
            </appenders>   <!--然后定義logger,只有定義了logger并引入的appender,appender才會生效-->
            <loggers>
                <!--過濾掉spring和mybatis的一些無用的DEBUG信息-->
                <logger name="org.springframework" level="INFO"/>
        
                <logger name="org.mybatis" level="INFO"/>
        
                <root level="all">
                    <appender-ref ref="Console"/>
        
                    <appender-ref ref="RollingFileDebug"/>
        
                    <appender-ref ref="RollingFileTrace"/>
        
                    <appender-ref ref="RollingFileInfo"/>
        
                    <appender-ref ref="RollingFileWarn"/>
        
                    <appender-ref ref="RollingFileError"/>
        
                </root>
        
            </loggers>
        </configuration>

        配置application.yml

        server:
          port: 8080
        spring:
          banner:
            charset: utf-8
        logging:
          level:
            # 根據不同的類設定不同級別
            root: info
            study.*: debug
            nobyte.*: debug
          config: classpath:log4j2-spring.xml
        

         

        使用slf4j打印

        package study.springboot.ioc;
        
        import lombok.extern.slf4j.Slf4j;
        import org.springframework.context.annotation.Lazy;
        import org.springframework.stereotype.Component;
        
        /**
         * CustomService
         *
         * @author linkanyway
         * @version 1.0
         * @date 2022/04/06 20:37
         */
        @Component("CustomService")
        @Slf4j
        public class CustomServiceImpl implements CustomService {
        
            /**
             * 構造器
             */
            public CustomServiceImpl() {
                log.debug ("CustomService被實例化,容器裝配制定了Lazy因此容器裝載時候不會立刻初始化,只有第一次調用才會初始化");
            }
        
            /**
             * 重載print方法
             */
            @Override
            public void print() {
            log.debug (this.getClass ().getCanonicalName ()+" 被調用了print方法");
            }
        }

         

        相關新聞

        • 政務服務小程序開發,能為政務服務提供哪些優勢?

          政務服務小程序開發,能為政務服務提供哪些優勢?

          小程序自發布以來,不斷開放接口能力,連接豐富的場景。不同行業在小程序開發上的應用創新也可謂是多種多樣。 在政務服務領域,小程序也以其便捷、迅速、功能強大而備受青睞,以外交部、工商總局、農業部為代表的部委級的單位開發的政務服務小程序,更是獨領風潮。“互聯網+政務”可以說為解決政務服務難題提供了一條新思路。那么政務小程序還有那些優勢呢? (1)信息更透明 預約+進度提醒,政務小程序,讓辦事再不用跑斷腿!小程序擁有的頭條版塊,可及時發布政策變更、政策解讀、服務內容和相關信息公示,同時又能通過查詢和消息…

          新聞中心 2024-03-18
        • CRM系統開發

          CRM系統開發

          無論企業規模如何,建立和維護強大的客戶關系都是業務成功的基礎。然而中小企業在客戶關系管理方面往往會有或多或少的欠缺,從而失去很多機會,市場競爭能力逐漸降低。比如:客戶信息無法沉淀、客戶信息流失?客戶問題響應慢、客戶體驗感差?等諸多問題都是導致中小企業缺乏市場競爭力的關鍵因素。因此越來越多的企業選擇CRM系統開發。 一、選擇CRM系統需要關注的點? 不同行業對于CRM系統的需求也是不同的,因此在選擇CRM系統時應選擇適合自身企業發展的,同時在選擇前我們需要關注幾點: 1、功能性 除了常規的功能外,…

          新聞中心 2024-10-10
        • 定制開發APP在境外和境內如何上架

          定制開發APP在境外和境內如何上架

          定制開發的APP上架過程可以根據其目標市場(境內或境外)有所不同。下面我將詳細介紹如何在中國境內市場以及常見的境外市場(如美國的App Store和Google Play Store)上架APP的流程。 境內上架流程(中國) 在中國上架APP,尤其是Android平臺,由于Google Play在中國不可用,你需要考慮上架到各種國內的應用商店,如華為應用市場、小米應用商店、OPPO應用市場等。 流程概覽: 獲取ICP許可:如果APP涉及網絡內容服務,需要先獲得ICP(互聯網內容提供商)許可。 軟…

          新聞中心 2024-04-12
        • 從21.9萬到34.2萬,wms倉庫管理軟件訂制究竟為哪些技術模塊買單

          從21.9萬到34.2萬,wms倉庫管理軟件訂制究竟為哪些技術模塊買單

          上周跟一家電子材料企業做技術交流,他們的采購總監直接問:“我們剛發了個25萬的線邊倉優化標,為什么有的定制報價10萬不到,有的卻要翻倍?”我當時沒直接回答,而是打開了剛成交的某電子219000元和某工業342000元兩份中標公告給他看。同一個季度,同樣是定制,差價12萬。這12萬差在哪里,就是今天想聊透的話題。 第一,先談真實的價格錨點,避免被“行情價”誤導 根據今年一月的公開采購信息,中型制造業的WMS功能擴展/優化項目,實際成交價集中在21萬至35萬元區間。麥斯克電子物料管理優化線邊倉項目,…

        • 上海客戶管理軟件開發公司助力企業360°客戶管理

          上海客戶管理軟件開發公司助力企業360°客戶管理

          在當今數字化轉型浪潮洶涌的時代,企業之間的競爭不再是簡單的產品與價格之爭,而是逐漸演變為以客戶為中心的服務與體驗之戰。如何有效管理客戶資源,實現精準營銷,提高客戶滿意度和忠誠度,已成為每個企業都必須面對的重要課題。國際大都市上海以其卓越的科技創新能力和豐富的商業資源,培育了一批引領行業的客戶管理軟件開發公司。憑借尖端的技術力量,幫助企業打造360°客戶管理系統開啟了智能客戶管理的新篇章。 在企業發展過程中,面對客戶管理問題時,往往會遇到一些挑戰。 1、客戶信息無沉淀,銷售離職,客戶信息就丟失 2…

          新聞中心 2024-08-19
        • 定制開發ERP管理軟件系統如何滿足企業特殊需求?

          定制開發ERP管理軟件系統如何滿足企業特殊需求?

          隨著信息技術的快速發展,企業管理面臨了越來越多的挑戰。為了適應市場的競爭和變化,許多企業開始尋求利用ERP(Enterprise Resource Planning)管理軟件系統來優化企業流程,提升工作效率。而定制開發ERP管理軟件系統則成為滿足企業特殊需求、實現個性化解決方案的重要途徑。 ? ? 首先,定制開發ERP管理軟件系統能夠幫助企業明確目標和需求。 每個企業都有自己獨特的經營模式和管理流程,通用的ERP系統可能無法完全滿足其需求。通過定制開發,可以根據企業的具體情況進行定制化設計,將系…

          新聞中心 2024-03-21
        • OpenClaw 能干什么?一個重度用戶的 10 個真實用例拆解

          OpenClaw 能干什么?一個重度用戶的 10 個真實用例拆解

          OpenClaw非常火爆非常強大,但它也很危險!本文提供最基礎的場景介紹,看官按自己的承受能力選擇使用 近年來,OpenClaw 龍蝦在國內外的技術圈爆火,吸引了眾多關注。但與其大量的理論討論、架構發展方向相比,真正的應用場景卻少有人深入剖析。 那么,OpenClaw到底能為我們的日常工作提供哪些切實可行的功能呢?作為一個具備開發能力的用戶,我們通過一系列實際案例,展示了OpenClaw的多種應用。通過這些用例,我們能更清晰地看到它如何影響和提升工作效率。 Clawd誕生于2025年11月——這…

          新聞中心 2026-03-02
        • 新能源汽車充電樁APP開發有哪些功能模塊?

          新能源汽車充電樁APP開發有哪些功能模塊?

          電動汽車行業發展迅速,但給汽車充電延長壽命存在很大問題。我們發現,許多電動汽車車主很難找到合適的充電樁,而且預訂系統也不完善。 許多運營商還表示,充電樁利用率低,運營管理混亂,運營成本高。這種你找不到我,我找不到你的現象大大降低了電動汽車使用和管理的效率 新能源汽車充電樁APP有哪些功能模塊?  1.LBS定位:用戶可以在APP上查詢附近的充電樁,快速找到汽車充電的閑置充電樁。  2.預約充電:提前預約可以幫助用戶快速鎖定充電樁,避免充電樁到達目的地時被占用的問題,提高充電效率。  3、掃碼連接…

          新聞中心 2024-03-01
        • 智慧養老APP有什么前景?有哪些功能?

          智慧養老APP有什么前景?有哪些功能?

          隨著人口老齡化趨勢的加劇,老年人口逐漸增多,養老服務的需求也在增加。智慧養老APP可以提供便捷、個性化、定制化的養老服務,滿足老年人的各種需求。 智慧養老APP在當前社會和經濟背景下具有非常廣闊的前景。很多企業或個人盯緊了智慧養老APP的這片藍海,但如何讓智慧養老APP達到收益,以下內容+幫您梳理。 一、智慧養老APP的功能可以根據具體的需求和目標進行設計和開發。 以下是一些常見的智慧養老APP功能: 1、健康管理和遠程醫療需求:老年人健康管理和醫療需求較高,智慧養老APP可以通過健康監測、遠程…

          新聞中心 2024-02-21
        • 批次管理總出錯?拆解ERP系統模塊設計,這幾個關鍵點決定庫存準確性

          批次管理總出錯?拆解ERP系統模塊設計,這幾個關鍵點決定庫存準確性

          ERP系統批次管理老是出錯?有可能是因為數據錄入出錯,比如說在錄入的時候不小心改動了一些原始數據,或者對數據中的某些參數理解錯誤,導致錄入的數據不準,當然也有可能是因為erp系統設計不完善導致,那么今天就來給大家拆解一下ERP系統庫存模塊設計。 一、系統間的批次管理關聯? 在企業供應鏈體系中,WMS(倉庫管理系統)、OMS(訂單客戶端)與ERP(企業資源計劃)均涉及批次管理。WMS負責實物出入庫時的批次采集,OMS作為橋梁傳遞批次需求,ERP則需要維護商品批次屬性與業務規則。三者通過接口實現數據…

          FAQ 2025-05-17
        在線溝通
        客服微信
        客服微信
        在線咨詢
        聯系我們

        聯系我們

        400-103-7662

        售前咨詢郵箱:
        sales@king-v.com

        工作時間:
        法定工作日 9:00-18:00

        返回頂部