springプロファイルlog 4 jが異なるファイルに出力されます.
背景:項目は業務ログ以外に、入参及びhttp要求の入出参を異なるログファイルに出力する必要があります.
前提:
スプリング種目ですから.比較的古い propertiesとxmlの共通の方式を使います.
1:配置maven依存:
一:ファイルに出力するためのアプリのプロパティを設定します.
二:ロゴを設定するプロパティ
三:クラスで定義する
完全なxmlコード構成
前提:
スプリング種目ですから.比較的古い 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