1. 程式人生 > >springcloud-微服務日誌管理(logback-spring)

springcloud-微服務日誌管理(logback-spring)

     原來的日誌在伺服器上採用的是cronolog元件按天分割的日誌,沒什麼大問題,因為本地也就控制檯看下;到服務端才需要正在的日誌檔案來核查問題。但是介於spring本來自帶不用,用第三方的外掛太麻煩(測試嫌麻煩)。所以優化原始碼採用logback-spring.xml的配置來打日誌。

直接上程式碼:

對應pom

<dependency>
			<!-- logback condition 需要用到 -->
			<groupId>org.codehaus.janino</groupId>
			<artifactId>janino</artifactId>
</dependency>

對應根目錄配置logback-spring.xml內容:

<configuration debug="true" scan="true" scanPeriod="30 minutes">
	<springProperty scope="context" name="logFileDir" source="logback.logFileDir"/>
	
	<!-- 當前日誌存放路徑(路徑末尾不要帶“/”),設定預設值 -->
	<property name="LOG_FILE_DIR" value="${logFileDir}/${appName}" />
	<property name="HIS_LOG_FILE_DIR" value="${logFileDir}/${appName}/history" />	
	<!-- 控制檯輸出 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{MM-dd HH:mm:ss.SSS}|%level|%logger{36}:%line|%thread|%msg%n</pattern>
		</encoder>
	</appender>
	<if condition='property("logFileDir") != null &amp;&amp; !property("logFileDir").isEmpty() &amp;&amp; !"bootstrap".equals(property("appName"))'>
		<then>
			<!-- 檔案輸出 -->
			<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
				<file>${LOG_FILE_DIR}/debug.log</file>
				<append>true</append>
				<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
					<fileNamePattern>${HIS_LOG_FILE_DIR}/%d{yyyy-MM/dd/HH}-debug.gz</fileNamePattern>
				</rollingPolicy>
				<encoder>
					<pattern>%d{MM-dd HH:mm:ss.SSS}|%level|%logger{36}:%line|%thread|%X{trackNo}|%msg%n</pattern>
				</encoder>
			</appender>
		</then>
	</if>


</configuration>

yml檔案配置:

logback:
  #非開發環境是否開啟控制檯日誌
  enableConsoleLogWhenNotInDev: false
  #**日誌檔案存放目錄,目錄後面無需再加"/"。備註如果這項不配置,則不輸出日誌檔案
  logFileDir: /acc-Log

需要注意的就是檔案路勁配置。

哦對了,日誌列印基於:org.slf4j.LoggerFactory

//注意:啟動類不應先載入Logger,優先讓spring去初始化Logger的配置,否則日誌輸出會異常
LoggerFactory.getLogger(PayApplication.class);

基本一切正常日誌按需輸出。

相關推薦

springcloud-服務日誌管理logback-spring

     原來的日誌在伺服器上採用的是cronolog元件按天分割的日誌,沒什麼大問題,因為本地也就控制檯看下;到服務端才需要正在的日誌檔案來核查問題。但是介於spring本來自帶不用,用第三方的外掛太麻煩(測試嫌麻煩)。所以優化原始碼採用logback-spring.xml

SpringCloud服務大綱 02idea篇

Ribbon 呼叫 負載均衡演算法 輪循演算法 啟動兩個userService服務 注意:當無法同時執行兩個main方法的時候,如下操作 點選進入第一個選項 右上角把這裡的√全部取消掉之後點apply執行 設定兩個不同的埠 ser

SpringCloud服務大綱 01idea篇

nslookup 域名(www.baidu.com) 檢視域名 微服務的概念? 將all in one 和 soa 框架的缺點都彌補了的框架結構 微服務是一種架構風格,一個大型複雜軟體應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。

清晰架構Clean Architecture的Go服務: 日誌管理

良好的日誌記錄可以提供豐富的日誌資料,便於在除錯時發現問題,從而大大提高編碼效率。 記錄器提供的自動化資訊越多越好,日誌資訊也需要以簡潔的方式呈現,便於找到重要的資料。 日誌需求: 無需修改業務程式碼即可切換到其他日誌庫 不需直接依賴任何日誌庫 整個應用程式只有一個日誌庫的全域性例項,因此你可以在一個位置更

Springboot 日誌管理配置logback-spring.xml

vat war 日誌 簡單的 apache out err 文檔 onf 幾種常見的日誌 Log4j:是最早的日誌框架,是apach旗下的,可以單獨使用,也可配合日誌框架JCL使用; Log4j2:apach旗下的關於log4j的升級版; Logback:是基於s

springcloud服務簡單例項服務發現與註冊

原理圖: 一.架構 1.建立一個SPRINGCLOUD專案 2.新增依賴: <parent> <groupId>org.springframework.boot</groupId> <artifactId>

ssm框架搭建-整合logback實現日誌管理spring5.0

ssm(spring+springmvc+mybatis)框架搭建:整合mybatis-generato程式碼生成器,很純淨的基本搭建。 搭建環境:idea+Tomcat 8+jdk 8    用Maven進行管理 1.專案結構: 2.檔案對應說明,在readme裡

SpringCloud服務許可權控制概述

從單體應用到SOA應用再到Spring Cloud微服務構架,應用的安全訪問都是非常重要的問題,怎麼樣設計微服務的許可權控制?首先,許可權控制可以分為三個部分:使用者認證,服務許可權,使用者許可權。 使用者認證 使用者認證,簡單的講,可以簡化為應用對使用者登入狀態的認證。

.Net Core 商城服務專案系列十五: 構建定時任務排程和訊息佇列管理系統

一.系統描述 嗨,好久不見各位老哥,最近有點懶,技術部落格寫的太少了,因為最近在寫小說,寫的順利的話說不定就轉行了,哈哈哈哈哈哈哈哈哈。 今天要介紹的是基於.Net Core的定時任務排程和訊息佇列管理系統。相信大家對這兩個肯定都已經很熟悉了,在開發過程中,這兩個元件扮演了不可或缺的角色: 訊息佇列幫助我們進

Windows下MySQL日誌管理Linux相似1.1

-h 發現 註意 line _id mod sni ans avi 為什麽要開啟數據庫的日誌 當多個程序都在使用數據庫的時候。我們的數據庫有時候竟然還會掛掉。想找原因?發現沒日誌可查。各個程序自己的日誌又不能找到關鍵原因。所以要開啟數據庫的日誌系統。 控制日誌大

服務的優勢精簡版

個人理解,還請給位大俠補充業務角度:1. 快速響應市場變化,調整業務邏輯,適配客戶需求;2. 對於新興業務領域,試錯成本低;IT角度:1. 加快交付效率:    1)從邏輯和物理層次上隔離,做到深層次解耦,每個微服務領域邊界清晰,高內聚低耦合使得單個微服務的程式碼量小,邏輯更

騰訊服務框架-MSECspp-rpc

第一張:UML圖 (虛線表示基類) 不是我故意畫得那麼複雜,而是原本就那麼複雜。 核心class介紹: 兩個基類: CFrame:框架公共類,主要包括框架日誌物件、框架監控日誌物件、框架統計物件; CServerBase:伺服器程式基礎類,包含執行環境初始化

SpringCloud實現服務間呼叫RestTemplate方式

上一篇文章《SpringCloud搭建註冊中心與服務註冊》介紹了註冊中心的搭建和服務的註冊,本文將介紹下服務消費者呼叫服務提供者的過程。 本文目錄 一、服務呼叫流程二、服務提供者三、服務消費者四、服務呼叫實戰 一、服務呼叫流程 總體流程是首先啟動註冊中心,服務提供者提供服務並註冊到註冊中心

清晰架構Clean Architecture的Go服務: 程式容器Application Container

清晰架構(Clean Architecture)的一個理念是隔離程式的框架,使框架不會接管你的應用程式,而是由你決定何時何地使用它們。在本程式中,我特意不在開始時使用任何框架,因此我可以更好地控制程式結構。只有在整個程式結構佈局完成之後,我才會考慮用某些庫替換本程式的某些元件。這樣,引入的框架或第三方庫的影響

清晰架構Clean Architecture的Go服務: 依賴注入Dependency Injection

在清晰架構(Clean Architecture)中,應用程式的每一層(用例,資料服務和域模型)僅依賴於其他層的介面而不是具體型別。 在執行時,程式容器¹負責建立具體型別並將它們注入到每個函式中,它使用的技術稱為依賴注入²。 以下是要求。 容器包的依賴關係: 容器包是唯一依賴於具體型別和許多外部庫的包,因為

SpringCloud服務雲架構構建B2B2C電子商務平臺之-高可用的分散式配置中心(Spring Cloud Config)

講述了一個服務如何從配置中心讀取檔案,配置中心如何從遠端git讀取配置檔案,當服務例項很多時,都從配置中心讀取檔案,這時可以考慮將配置中心做成一個微服務,將其叢集化,從而達到高可用,架構圖如下: 一、準備工作 繼續使用上一篇文章的工程,建立一個eureka-server工程,用作服務註冊中心。 在其

關於SpringCloud服務雲架構構建B2B2C電子商務平臺之-分散式配置中心(Spring Cloud Config)

一、簡介 在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring Cloud中,有分散式配置中心元件spring cloud config ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端Git倉庫中。在spring cloud

SpringCloud服務雲架構構建B2B2C電子商務平臺之-分散式配置中心(Spring Cloud Config)

一、簡介 在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring Cloud中,有分散式配置中心元件spring cloud config ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端Git倉庫中。在spri

SpringCloud服務雲架構構建B2B2C電子商務平臺之- 高可用的分散式配置中心(Spring Cloud Config)

講述了一個服務如何從配置中心讀取檔案,配置中心如何從遠端git讀取配置檔案,當服務例項很多時,都從配置中心讀取檔案,這時可以考慮將配置中心做成一個微服務,將其叢集化,從而達到高可用,架構圖如下: 一、準備工作 繼續使用上一篇文章的工程,建立一個eureka-server工程,用作服務註冊中心。 在

關於SpringCloud服務雲架構構建B2B2C電子商務平臺之-高可用的分散式配置中心(Spring Cloud Config)

講述了一個服務如何從配置中心讀取檔案,配置中心如何從遠端git讀取配置檔案,當服務例項很多時,都從配置中心讀取檔案,這時可以考慮將配置中心做成一個微服務,將其叢集化,從而達到高可用,架構圖如下: 一、準備工作 繼續使用上一篇文章的工程,建立一個eureka-server工程,用作服務註