最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot配置log4j輸出日志的案例講解

 更新時間:2022年11月24日 11:10:34   作者:qq_25073223  
這篇文章主要介紹了SpringBoot配置log4j輸出日志的案例講解,springboot框架中默認(rèn)使用logback進行日志輸出,當(dāng)然它也可以配置其它的日志框架,需要的朋友可以參考下

下文筆者講述SpringBoot配置log4j的方法分享,如下所示

SpringBoot日志輸出

springboot框架中默認(rèn)使用logback進行日志輸出
當(dāng)然它也可以配置其它的日志框架

SpringBoot配置log4j

Springboot配置log4j的方法:

   1.添加log4j.properties配置文件
   2.初始化配置文件

配置log4j文件

 添加log4j.properties配置文件
 配置文件添加的路徑
   在工程src/main/resources下

文件內(nèi)容

#log4j.rootLogger=CONSOLE,info,error,DEBUG
log4j.rootLogger=info,error,CONSOLE,DEBUG

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender     
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout     
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n     
      
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout     
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info   
log4j.appender.info.append=true   
#log4j.appender.info.File=/home/java265project/logs/info/api_services_info
log4j.appender.info.File=/Users/java265project/logs/info/api_services_info

log4j.logger.error=error  
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout     
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error   
log4j.appender.error.append=true   
#log4j.appender.error.File=/home/java265project/logs/error/api_services_error
log4j.appender.error.File=/Users/java265project/logs/error/api_services_error

log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout     
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG   
log4j.appender.DEBUG.append=true   
#log4j.appender.DEBUG.File=/home/java265project/logs/debug/api_services_debug
log4j.appender.DEBUG.File=/Users/java265project/logs/debug/api_services_debug

### Debug
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
注意事項:
    1.log4j.properties文件中
      當(dāng)部署線上環(huán)境,需要釋放掉注釋語句,并注釋線下配置語句。
      #log4j.appender.info.File=/home/java265project/logs/info/api_services_info
     log4j.appender.info.File=/Users/java265project/logs/info/api_services_info
    2.日志配置涉及三個級別:info、error、debug

例:

初始化log4j配置

springboot啟動是通過main入口函數(shù)
需在main入口函數(shù)中設(shè)置log4j初始化

public class App {
	private static final Logger logger = LoggerFactory.getLogger(App.class);	
	@Value("${server.port}")
	private int port;
	@Value("${server.sessionTimeout}")
	private int sessionTimeout;
	static {
		try{
		   // 初始化log4j
		   String log4jPath = "";
		   if(Constant.LOG_MODE == 1){
			   // 配置線上地址
			   log4jPath = App.class.getClassLoader().getResource("").getPath()+"java265project/config/log4j.properties";
			   logger.info("Log4j線上生產(chǎn)模式初始化。。。");	
		   }else{
			   // 配置本地地址
			   log4jPath = App.class.getClassLoader().getResource("").getPath()+"log4j.properties";
			   logger.info("Log4j線下開發(fā)模式初始化。。。");	
		   }		   		   
		   logger.info("初始化Log4j。。。。");	
		   logger.info("path is "+ log4jPath);	
		   PropertyConfigurator.configure(log4jPath);
		}catch (Exception e){			  
			  logger.error(e.toString());	
		}
    }

	public static void main(String[] args) {
		
		final String[] temp = args;
		
		logger.info("oops: main入口函數(shù)編碼-" +System.getProperty("file.encoding"));
		
		if(Constant.LOG_MODE == 0){
			SpringApplication.run(App.class, args);
			logger.info("oops: 線下開發(fā)測試");		
		}else{
			logger.info("oops:" + args[0]);		
		}
							
		if(ArrayUtils.isNotEmpty(args))
	    {
	        // 如果你的應(yīng)用程序,運行后不自動退出,那么處理start時不要執(zhí)行正常的代碼,否則在部署測試 appctl.sh 的時候,會一直等待進程退出
	        if(args[0].equals("startup"))
	        {	            	            
	        	new Thread(
	        		new Runnable(){
	        			public void run(){
	        				System.out.println("啟動Mythread子線程");
	        				logger.info("啟動Mythread子線程");	
	        				SpringApplication.run(App.class, temp);		        	        
	        			}
	        	}).start();
	        	
	        	System.out.println("program startup");
	    		logger.info("program startup");		    		
	        }else if(args[0].equals("stop"))
	        {
	            System.out.println("program stop");
	            logger.info("program stop");		            
	        }else if(args[0].equals("restart"))
	        {
	            System.out.println("program restart");
	            logger.info("program restart");	
	        }else if(args[0].equals("status"))
	        {
	            System.out.println("program status");
	            logger.info("program status");	
	        }
	    }		 
	}

優(yōu)化配置

可對log4j.properties文件進行調(diào)整
使其配置更簡單

log4j.rootLogger=${log.root}

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
      
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info
log4j.appender.info.append=true
log4j.appender.info.File=${log.base}/java265project/logs/info/api_services_info

log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error
log4j.appender.error.append=true
log4j.appender.error.File=${log.base}/java265project/logs/error/api_services_error

log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.append=true
log4j.appender.DEBUG.File=${log.base}/java265project/logs/debug/api_services_debug

### Debug
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

與之相應(yīng)的main函數(shù)新增如下代碼,同時去掉static代碼塊:

System.setProperty("log.root",Constant.LOG_ROOT_DAILY);			
System.setProperty("log.base",Constant.LOG_PATH_DAILY);

到此這篇關(guān)于SpringBoot配置log4j輸出日志的案例講解的文章就介紹到這了,更多相關(guān)SpringBoot配置log4j輸出日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring的Model?和?Map的原理源碼解析

    Spring的Model?和?Map的原理源碼解析

    這篇文章主要介紹了Spring的Model?和?Map的原理解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Spring中@Autowired和@Resource注解相同點和不同點

    Spring中@Autowired和@Resource注解相同點和不同點

    這篇文章主要介紹了Spring中@Autowired和@Resource注解相同點和不同點,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Java8中List轉(zhuǎn)換String字符串幾種方式

    Java8中List轉(zhuǎn)換String字符串幾種方式

    這篇文章主要給大家介紹了關(guān)于Java8中List轉(zhuǎn)換String字符串的幾種方式,在實際開發(fā)中經(jīng)常遇到List轉(zhuǎn)為String字符串的情況,文中給出了幾種方法的示例代碼,需要的朋友可以參考下
    2023-07-07
  • Java內(nèi)存模型與JVM運行時數(shù)據(jù)區(qū)的區(qū)別詳解

    Java內(nèi)存模型與JVM運行時數(shù)據(jù)區(qū)的區(qū)別詳解

    這篇文章主要介紹了Java內(nèi)存模型與JVM運行時數(shù)據(jù)區(qū)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot配置及使用Schedule過程解析

    SpringBoot配置及使用Schedule過程解析

    這篇文章主要介紹了SpringBoot配置及使用Schedule過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Mybatis添加Ehcache支持的方法

    Mybatis添加Ehcache支持的方法

    mybatis添加ehcache支持非常簡單,只主要在sql映射文件中添加一行代碼就可以實現(xiàn),糾結(jié)是什么代碼呢,這么神奇,帶著這樣問題一起通過本文學(xué)習(xí)吧
    2016-08-08
  • Java開發(fā)崗位面試被問到泛型怎么辦

    Java開發(fā)崗位面試被問到泛型怎么辦

    泛型在java中有很重要的地位,在面向?qū)ο缶幊碳案鞣N設(shè)計模式中有非常廣泛的應(yīng)用。java泛型知識點也是Java開發(fā)崗位必問的一個話題,今天小編就給大家普及下Java泛型常見面試題,感興趣的朋友一起看看吧
    2021-07-07
  • Redis?+?Java攔截器實現(xiàn)用戶匿名和非匿名訪問

    Redis?+?Java攔截器實現(xiàn)用戶匿名和非匿名訪問

    本文主要介紹了Redis?+?Java攔截器實現(xiàn)用戶匿名和非匿名訪問,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • spring mvc中@PathVariable / 帶斜杠方式獲取

    spring mvc中@PathVariable / 帶斜杠方式獲取

    這篇文章主要介紹了spring mvc中@PathVariable / 帶斜杠方式獲取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java設(shè)計模式之享元模式

    Java設(shè)計模式之享元模式

    這篇文章主要為大家詳細(xì)介紹了Java設(shè)計模式之享元模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論

赤城县| 开封县| 界首市| 外汇| 沙田区| 漠河县| 吉水县| 梁河县| 阿图什市| 元江| 南城县| 伊春市| 乌兰浩特市| 六枝特区| 武安市| 榆林市| 九寨沟县| 冕宁县| 平和县| 靖宇县| 玉树县| 泽库县| 疏勒县| 丰顺县| 旺苍县| 建昌县| 嘉黎县| 怀远县| 苏尼特右旗| 沙雅县| 长乐市| 玛沁县| 临湘市| 台北市| 湖口县| 当雄县| 辽中县| 南阳市| 珲春市| 旺苍县| 高雄市|