<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、綜合技術整合能力 跨領域技術合作、一站式服務 2、用戶體驗與創意設計 獨特的設計理念和交互方式 3、智能解決方案 進行更智能、更有效的工作流程 4、安全與隱私維護 可信賴的數據管理和隱私保護服務 二、企業系統定制開發的流程 1、需求分析 系統定制開發的第一步是和客戶深入溝通,了解項目規定與目標。依據需求分析,創…

          新聞中心 2025年2月19日
        • 新零售行業智慧財務管理系統解決方案

          新零售行業智慧財務管理系統解決方案

          如今,新零售企業正面臨著前所未有的挑戰:線上線下一體化運營帶來海量數據、促銷活動頻繁導致利潤核算復雜、供應鏈多變使得資金預測困難……傳統的財務管理模式,如同用手工作坊式的賬本去管理一個現代化工廠,早已力不從心。 一、新零售的財務痛點,你中了幾個? 1、數據孤島,業財分離:線上商城、線下門店、ERP、CRM、WMS(倉庫管理系統)……系統林立,數據不通。財務人員需要耗費大量時間在數據核對與手工錄入上,“算不清賬”成為常態。 2、核算復雜,利潤難清:直播帶貨、社群團購、優惠券、滿減、平臺傭金、跨店結…

          新聞中心 2025年10月9日
        • 上海魁鯨:企業OA系統定制開發具備哪些核心功能?

          上海魁鯨:企業OA系統定制開發具備哪些核心功能?

          企業OA軟件定制可幫助企業管理更高效、更便捷,將繁瑣的流程自動化并推進數字化轉型,方便高管們更輕松地實現對業務的監視和協調,提升企業內部的工作效率和智能運營水平。本文將深入探討企業OA軟件定制的核心功能,并對如何優化企業內部流程進行解析。 一、上海魁鯨企業OA軟件定制的核心功能 1.文件共享:企業OA軟件定制開發允許不同部門間共享文件,以達到高效溝通和知識分享的目的。為企業生產力的改善以及成員均等合作構建了基礎。 2.內容管理:通過一個統一的平臺,用戶可訪問所有公司信息以及知識資產,快速了解公司…

          新聞中心 2024年4月25日
        • 實驗室基礎信息管理系統

          實驗室基礎信息管理系統

          實驗室基礎信息管理系統主要功能模塊及特點 1、統一認證 – 實現統一認證管理,涵蓋學號及系統登錄管理,為系統的訪問提供統一的身份驗證入口,確保系統使用的安全性和規范性。 2、基礎管理 – 以學校組織機構為主線,以實驗室為核心,對實驗室涉及的人、才、物等各類信息進行全面管理,形成一個完整的信息管理體系,便于資源的整合與調配。 3、消息發布 – 可將消息公告發送至每一位使用系統的人員,并能指定發布范圍,確保重要信息的及時傳達和精準推送,提高信息傳播的效率和針對性。…

          新聞中心 2025年1月20日
        • 不得不看!CRM系統開發對于企業的6大好處

          不得不看!CRM系統開發對于企業的6大好處

          CRM 從字面上來講,就是指企業管理與客戶管理之間的聯系,簡單來說,即為通過選擇高質量的客戶并保持長期合作關系的一種商業策略。它包含著以客戶為中心的管理思想、經營邏輯甚至企業文化。CRM 的管理邏輯是通過對客戶的識別、獲得、保持和增加以及流失等客戶全周期的管理,以達到更有效的加強與客戶間的聯系、培養更多忠誠客戶、促進客戶重復消費、最大限度提升客戶貢獻率的商業目的。 1) 客戶價值最大化現代營銷理論強調企業應以客戶為中心,其實質就是要實現客戶價值最大化。所謂客戶價值,正確的理解應該是客戶通過購買產…

          新聞中心 2024年4月11日
        • 為什么要定制開發一款OA系統?

          為什么要定制開發一款OA系統?

          OA系統可以說是企業管理系統的元老之一了,只要問及企業管理系統有哪些,首先會想到的就是OA系統,且OA系統是每個企業必備的管理系統之一。因此市面上已經有很多成品類的OA系統,價格也很便宜,但是為什么依然有些企業會去選擇定制一款OA系統呢?今天魁鯨科技就和大家聊聊這其中的緣由。 市面上的OA系統有兩種類型,一種是成品型,就是大家熟悉的企業微信和釘釘等,這種是已經有基礎功能的,購買即可使用,系統是SAAS的,但是對于一些大型企業會有一定的數據安全要求,這類的就可能不太適合。另外一類就是定制開發性,定…

          新聞中心 2023年2月6日
        • 企業ERP軟件定制如何提升企業運營效益和庫存控制?

          企業ERP軟件定制如何提升企業運營效益和庫存控制?

          隨著市場競爭的加劇,企業需要在提高生產效率、降低成本等方面尋找新的突破口。而企業erp軟件定制作為一種綜合性的管理信息系統,可以幫助企業實現生產計劃、庫存管理、訂單處理、財務核算等方面的自動化和集成,從而提高管理效率和降低成本。本文將針對如何利用企業erp軟件定制進行精益生產和成本控制進行探討。 一、精益生產的基本概念 精益生產是一種以顧客為中心、追求零浪費的生產方式。它主要包括以下幾個方面: 1.加強生產流程控制 通過對生產流程的控制,避免不必要的物料和時間浪費,從而提高生產效率和質量。 2.…

          新聞中心 2024年4月27日
        • wms倉儲智能管理系統軟件定制開發公司

          wms倉儲智能管理系統軟件定制開發公司

          WMS,即倉庫管理系統(Warehouse Management System),是一種專門用于倉庫運營管理的軟件系統。它通過信息化技術,精確控制與高效管理倉庫內物件的儲存、歸納和出入。同時,WMS也將有效配置和調度倉庫空間、設備、人力資源等優質,提升倉庫總體經營效率,節省成本,保證庫存數據的真實性。魁鯨科技作為一家軟件定制開發公司,旨在為企業提供一站式智能倉儲解決方法。 一、wms倉儲智能管理系統-核心功能 1、庫存精準管理 實時監控庫存狀態,避免缺貨或積壓 支持批次、效期管理,減少過期損耗 …

          新聞中心 2025年6月27日
        • wms智能庫存管理系統開發:助力制造業打造高效庫房

          wms智能庫存管理系統開發:助力制造業打造高效庫房

          由于工廠涉及到原材料、輔料、半成品、產成品等多種物料管理環節,如果缺乏專業的倉儲管理系統(WMS)軟件支持,僅依靠人工記錄很容易出現錯誤。 例如,倉庫管理缺乏安全庫存的監控和缺貨分析,全部依賴人工核算剩余庫存和訂單質檢的相關性。在領料環節,可能會出現庫存不足的情況,從而導致工廠停產,影響生產效率。 魁鯨WMS倉儲管理系統在制造型企業中的應用遠不止于簡單的庫存管理,它還涉及到提高工作效率等重要部分。 一、提高工作效率,降低錯誤幾率 魁鯨WMS倉儲管理系統的運用讓倉庫管理更加高效和準確。這對于企業而…

          新聞中心 2024年4月3日
        • 江蘇移動APP開發:開發一個APP多少錢?

          江蘇移動APP開發:開發一個APP多少錢?

          在當今的數字時代,移動應用已經成為企業與用戶溝通的重要橋梁。對于位于中國東部沿海的經濟大省江蘇來說,定制移動應用APP不僅可以提升企業的品牌形象,還可以有效拓寬市場渠道,提高用戶粘性。因此,許多江蘇企業正在考慮開發移動應用程序來擴大業務。然而,有一個不可避免的問題是:“開發一個應用程序要花多少錢?” 首先,我們必須明白,應用程序APP開發的成本不是一個固定的單一數字,而是根據實際需要、開發復雜性、設計美觀、功能數量等因素來決定的。簡而言之,基本的信息顯示應用程序和集購物、支付、社交網絡等功能于一…

          行業經驗分享 2024年8月8日
        在線溝通
        客服微信
        客服微信
        在線咨詢
        聯系我們

        聯系我們

        400-103-7662

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

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

        返回頂部