springプロファイルlog 4 jが異なるファイルに出力されます.


背景:項目は業務ログ以外に、入参及びhttp要求の入出参を異なるログファイルに出力する必要があります.
前提:
スプリング種目ですから.比較的古い  propertiesとxmlの共通の方式を使います.
1:配置maven依存:
			
			
				log4j
				log4j
				${log4j.version}
			
2:プロファイルの設定
cybershop.web.log.dir=${web.log.dir}
cybershop.web.log.info.filename=web-info
cybershop.web.log.debug.filename=web-debug
cybershop.web.log.external.request.filename=web-external
cybershop.web.log.internal.request.filename=web-internal
cybershop.web.log.warn.filename=web-warn
cybershop.web.log.error.filename=web-error
cybershop.web.log.maxhistory=${cybershop.log.maxhistory}
cybershop.web.log.maxfilesize=${cybershop.log.maxfilesize}
cybershop.web.log.charset=${cybershop.log.charset}
この中の${}データはメインpomから取得されます.例:
                
                ERROR,consoleAppender
                DEBUG
3:設定xmlファイル
一:ファイルに出力するためのアプリのプロパティを設定します.
	
		${cybershop.web.log.dir}/${cybershop.web.log.external.request.filename}.json
		
			INFO
			ACCEPT
			DENY 
		
		true
		
			${cybershop.web.log.dir}/${cybershop.web.log.external.request.filename}.%d{yyyy-MM-dd}-%i.json
			${cybershop.web.log.maxhistory}
			
				${cybershop.web.log.maxfilesize}
			
		
		
		
			false
			{"logType":"web_external_request"}
		
	
その中でもアプリのnameをカスタマイズすればいいです.その他は多く述べる必要はない.
二:ロゴを設定するプロパティ
	
		
		
	
apender-refに対応する名称はapender定義の名称です.クラスでの呼び出しには、ユーザー定義の名前が使用されます.
三:クラスで定義する
private static final Logger logger = LoggerFactory.getLogger("external_request");
logger.infoまたは他の出力を使って指定された場所にファイルを出力できます.
 
完全なxmlコード構成


  
	
		${cybershop.web.log.dir}/${cybershop.web.log.info.filename}.json
		
            INFO
            ACCEPT
            DENY 
        
		true
		
			${cybershop.web.log.dir}/${cybershop.web.log.info.filename}.%d{yyyy-MM-dd}-%i.json
			${cybershop.web.log.maxhistory}
			
				${cybershop.web.log.maxfilesize}
			
		

		
		
			false
			{"logType":"web_service"}
		
	

	
		${cybershop.web.log.dir}/${cybershop.web.log.external.request.filename}.json
		
			INFO
			ACCEPT
			DENY 
		
		true
		
			${cybershop.web.log.dir}/${cybershop.web.log.external.request.filename}.%d{yyyy-MM-dd}-%i.json
			${cybershop.web.log.maxhistory}
			
				${cybershop.web.log.maxfilesize}
			
		
		
		
			false
			{"logType":"web_external_request"}
		
	

	
		${cybershop.web.log.dir}/${cybershop.web.log.internal.request.filename}.json
		
			INFO
			ACCEPT
			DENY 
		
		true
		
			${cybershop.web.log.dir}/${cybershop.web.log.internal.request.filename}.%d{yyyy-MM-dd}-%i.json
			${cybershop.web.log.maxhistory}
			
				${cybershop.web.log.maxfilesize}
			
		
		
		
			false
			{"logType":"web_internal_request"}
		
	

	
		
            INFO
            ACCEPT
            ACCEPT
        
		
			%d{yyyy-MM-dd HH:mm:ss} %-5p %logger{60} %m%n