目錄
- 一、日志檔案輸出說明
- 二、日志配置說明
- 2.1 組態檔路徑
- 2.2 配置格式
- 2.2.1 引數說明
- 三、代碼說明
- 四、自定義日志實體
- 實體1-新建日志類
- 實體2-直接在代碼中使用日志輸出
- 五、附錄
- 參考文章
一、日志檔案輸出說明
日志目錄: /nchome/nclogs/servername/ ,其中servername集群時目錄類似為master,ncMem01等,非集群時目錄為:server1(服務名)
| 模塊 | 輸出格式 | 說明 |
|---|---|---|
| anonymous | anony-log.log | 業務日志,如果沒有配置模塊,日志寫在該處 |
| nclog | nc-log.log | 系統日志,是系統的主日志系統,所有錯誤日志都會輸出到該檔案, |
| pfxx | pfxx-log.log | 外部交換平臺日志檔案 |
| portal | portal-log.log | portal日志檔案 |
| prealert | pa-log.log | 預警平臺日志檔案 |
| accountmanage | am-log.log | 系統管理升級日志檔案 |
| nc.bs.framework | fw-log.log | IOC容器框架日志檔案 |
| iufo | iufo-log.log | iufo日志檔案 |
| userpower | userpower-log.log | 權限升級日志檔案 |
| workflow | wf-log.log | 流程平臺日志檔案 |
| nc.bs.framework.mx.thread | mwsummary-log.log | 性能概要日志,記錄部分中間日志,結合NMC分析中間件使用 |
| sql | sql-log.log | 系統執行sql日志檔案,結合NMC分析使用;一般不用設定為debug,除錯時再設定 |
| uapweb | uapweb-log.log | uapweb模塊日志檔案 |
| nc.bs.framework.codesync | codesync-log.log | 代碼同步日志檔案 |
| uapbdsearch | uapbdsearch-log.log | 企業搜索日志檔案 |
| uapadp | uap-adp.log | 分布系統日志檔案 |
| scheduleengine | schedule-log.log | 調度引擎日志檔案 |
| tmobm | tmobm-log.log | 資金銀企直聯模塊日志檔案 |
| nc.itf.uap.queryengine | qeddc-log.log | 查詢引擎日志檔案 |
| warningsql | warningsql-log.log | 引發警告條件的sql日志檔案,結合NMC分析使用 |
二、日志配置說明
2.1 組態檔路徑
/nchome/ierp/bin/logger-config.properties
2.2 配置格式
mobileaim.level=DEBUG
mobileaim.pattern=$$callid=%X{serial} $$thread=[%t] $$host=%X{remoteAddr} $$userid=%X{user} $$ts=%d{yyyy-MM-dd HH:mm:ss} $$remotecall=[%A] $$debuglevel=%p $$msg=%m %n
mobileaim.file=./nclogs/${server}/mobileaim-log.log
mobileaim.size.maxSize=5MB
mobileaim.size.maxIndex=5
2.2.1 引數說明
mobileaim = 模塊名稱 <moduleName>
level = 日志等級
ALL = new Level("ALL", 0);
TRACE = new Level("TRACE", 1);
DEBUG = new Level("DEBUG", 2);
INFO = new Level("INFO", 3);
WARN = new Level("WARN", 4);
ERROR = new Level("ERROR", 5);
NSTACK = new Level("NSTACK", 5);
FATAL = new Level("FATAL", 6);
OFF = new Level("OFF", 7);
pattern = 日志輸出格式
file = 日志輸出檔案
size.maxSize = 單日志檔案最大存盤
size.maxIndex = 日志最大個數
其中pattern配置說明如下:
%m 代碼中指定的具體日志資訊,message
%n 一個回車換行符,Windows平臺為"\r\n",Unix平臺為"\n"
%x 和當前執行緒相關聯的NDC背景關系資訊(堆疊式)
%X{key} 和當前執行緒相關的MDC背景關系變數(key/value形式)
// NCD與MDC見../JAVA/Log4j之MDC和NDC區別和用法
%C className 類名
%M methodName 方法名
%L lineNumber 執行緒號
%T logType 日志型別
%A moduleName 模塊名
%t 產生該日志事件的執行緒名
%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式
%p level,日志資訊的優先級
三、代碼說明
NC6X的日志框架為Log4j,NCC后升級為Log4j2
基本日志類
nc.bs.logging.Log;
// 可以基于該類實作自定義日志的輸出
Log defLog = Log.getInstance(moduleName);
日志級別
nc.bs.logging.Level;
ALL = new Level("ALL", 0);
TRACE = new Level("TRACE", 1);
DEBUG = new Level("DEBUG", 2);
INFO = new Level("INFO", 3);
WARN = new Level("WARN", 4);
ERROR = new Level("ERROR", 5);
NSTACK = new Level("NSTACK", 5);
FATAL = new Level("FATAL", 6);
OFF = new Level("OFF", 7);
日志事件引數類
org.apache.log4j.spi.LoggingEvent;
// NC對該類的繼承
nc.bs.logging.impl.log4j.Log4jLoggingEvent;
pattern引數決議類
org.apache.log4j.PatternLayout
// NC的繼承
nc.bs.logging.impl.log4j.Log4jPatternFormatter;
四、自定義日志實體
logger-config.properties配置如下:
# liyas add 20200911 介面日志
uapport.level=DEBUG
uapport.pattern=$$callid=%X{serial} $$thread=[%t] $$host=%X{remoteAddr} $$userid=%X{user} $$ts=%d{yyyy-MM-dd HH:mm:ss} $$debuglevel=%p $$module=[%A] $$class=[%C] $$method=[%M] $$msg=%m %n
uapport.file=./nclogs/${server}/uapport-log.log
uapport.size.maxSize=5MB
uapport.size.maxIndex=5
實體1-新建日志類
package nc.bs.logging;
import nc.bs.logging.Log;
/**
* 系統對外介面日志輸出類
* @author liyas 2020-07-27
*
*/
public class UapPortLogger {
private static String LOGFILE = "uapport";
public static void debug(Object msg, Class caller, String methodName) {
Log LOGFILELog = Log.getInstance(LOGFILE);
LOGFILELog.debug(msg, caller, methodName);
}
public static void info(Object msg, Class caller, String methodName) {
Log portLog = Log.getInstance(LOGFILE);
portLog.info(msg, caller, methodName);
}
public static void error(Object msg, Throwable exception, Class caller,
String methodName) {
Log portLog = Log.getInstance(LOGFILE);
portLog.error(msg, exception, caller, methodName);
}
public static void error(Object msg, Class caller, String methodName) {
Log portLog = Log.getInstance(LOGFILE);
portLog.error(msg, caller, methodName);
}
public static void warn(Object msg, Throwable exception, Class caller,
String methodName) {
Log portLog = Log.getInstance(LOGFILE);
portLog.warn(msg, exception, caller, methodName);
}
public static void warn(Object msg, Class caller, String methodName) {
Log portLog = Log.getInstance(LOGFILE);
portLog.warn(msg, caller, methodName);
}
}
實體2-直接在代碼中使用日志輸出
// 將日志輸出至uapport檔案
Log.getInstance("uapport").info("message",this.getClass(),"Method");
五、附錄
參考文章
Log4j.properties配置詳解
Log4j之MDC和NDC用法
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485096.html
標籤:Java
下一篇:Java如何判斷陣列是否相等呢?
