如何详细解析NC系统的日志配置与代码实现?

2026-05-05 20:271阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1395个文字,预计阅读时间需要6分钟。

如何详细解析NC系统的日志配置与代码实现?

使用友NC系列产品 - 日志配置及代码说明目录

一、日志文件输出说明

二、日志配置说明

2.1 配置文件路径 2.2 配置格式 2.2.1 参数说明

三、代码说明

四、自定义日志实例

实例1 - 新建日志类

用友NC系列产品-日志配置及代码说明

目录
  • 一、日志文件输出说明
  • 二、日志配置说明
    • 2.1 配置文件路径
    • 2.2 配置格式
      • 2.2.1 参数说明
  • 三、代码说明
  • 四、自定义日志实例
    • 实例1-新建日志类
    • 实例2-直接在代码中使用日志输出
  • 五、附录
    • 参考文章

如何详细解析NC系统的日志配置与代码实现?

一、日志文件输出说明

日志目录/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用法

本文共计1395个文字,预计阅读时间需要6分钟。

如何详细解析NC系统的日志配置与代码实现?

使用友NC系列产品 - 日志配置及代码说明目录

一、日志文件输出说明

二、日志配置说明

2.1 配置文件路径 2.2 配置格式 2.2.1 参数说明

三、代码说明

四、自定义日志实例

实例1 - 新建日志类

用友NC系列产品-日志配置及代码说明

目录
  • 一、日志文件输出说明
  • 二、日志配置说明
    • 2.1 配置文件路径
    • 2.2 配置格式
      • 2.2.1 参数说明
  • 三、代码说明
  • 四、自定义日志实例
    • 实例1-新建日志类
    • 实例2-直接在代码中使用日志输出
  • 五、附录
    • 参考文章

如何详细解析NC系统的日志配置与代码实现?

一、日志文件输出说明

日志目录/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用法