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用法
NC-日志配置及代码详解的更多相关文章
- Android + Appium 自动化测试完整的环境配置及代码详解
环境的的搭建 参考大神博客:https://www.cnblogs.com/fnng/p/4540731.html 该博客有一套详细的入门教程,奈何时间有点久远有些东西不能用了,但是参考价值还是有滴. ...
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- Nginx 配置及参数详解
Nginx 配置及参数详解 Nginx Location 指令语法 如下就是常用的 location 配置的语法格式,其中modifier是可选的,location_match就是制定 URI 应该去 ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解
http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...
- webpack安装配置使用教程详解
webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...
- OpenVPN下载、安装、配置及使用详解
OpenVPN下载.安装.配置及使用详解 OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可 ...
- MySql绿色版配置及使用详解
原文:MySql绿色版配置及使用详解 最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySq ...
- Linux NFS服务器的安装与配置方法(图文详解)
这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...
随机推荐
- Jamie and Tree (dfs序 + 最近公共祖先LCA)
题面 题解 我们求它子树的权值和,一般用dfs序把树拍到线段树上做. 当它换根时,我们就直接把root赋值就行了,树的结构不去动它. 对于第二个操作,我们得到的链和根的相对位置有三种情况: 设两点为A ...
- 解决eclipse中的Java文件,使用idea打开的乱码问题
吐槽: 在克隆一些Github上面资源的时候,使用idea打开,会出现乱码的情况 而使用eclipse打开,这种情况就会消失.「是因为eclipse使用的是GBK编码,idea使用的是utf-8」 这 ...
- 第六篇:vue.js模板语法(,属性,指令,参数)
Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统. 结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上.( ...
- Java开发学习(三十三)----Maven私服(一)私服简介安装与私服分类
一.私服简介 团队开发现状分析 (1)张三负责ssm_crm的开发,自己写了一个ssm_pojo模块,要想使用直接将ssm_pojo安装到本地仓库即可 (2)李四负责ssm_order的开发,需要用到 ...
- HCIA-STP原理与配置
STP协议生成树协议: 为了保证网络可靠,所以在组网时需要设置冗余链路和设备,从而在物理结构上形成结构,又因为交换机的工作特点导致二层网络中产生广播风暴和MAC地址表震荡现象,影响用户体验. 广播风暴 ...
- 分布式安装部署MinIO
官方文档地址:http://docs.minio.org.cn/docs/master/distributed-minio-quickstart-guide 前提条件:分布式Minio至少需要4个硬盘 ...
- 【Linux】指令学习
Linux学习记录 生命不息,写作不止 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 1.虚拟机网卡配置 服务器重启完成之后,我们可以通过linux的指令 ip addr ...
- [题解] Atcoder ARC 142 D Deterministic Placing 结论,DP
题目 (可能有点长,但是请耐心看完,个人认为比官方题解好懂:P) 首先需要注意,对于任意节点i上的一个棋子,如果在一种走法中它走到了节点j,另一种走法中它走到了节点k,那么这两种走法进行完后,棋子占据 ...
- Qt+ECharts开发笔记(五):ECharts的动态排序柱状图介绍、基础使用和Qt封装Demo
前言 上一篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口. 本篇的demo实现了自动排序的柱状图,实现了一个自动排序柱状图的基本交互方式,即Qt ...
- CentOS 7 下安装 MySQL 8.x
CentOS 7 下安装 MySQL 8.x 作者:Grey 原文地址: 博客园:CentOS 7 下安装 MySQL 8.x CSDN:CentOS 7 下安装 MySQL 8.x 环境 CentO ...