JAVA 日志埋点使用总结:
环境:jdk1.7、tomcat7、win10、maven 3.2.5
一、 删除应用中所有的log jar包
二、 导入unslog jar包
com.uns.inf
unslog
1.0.0
三、 在resource目录下追加unslog.properties(可选)
内容如下:
#项目名称(工程化项目自动获取,无需修改)
app_name=${projectName}
#日志级别
#log_level=info
#日志存放天数
#maxHistory=30
#业务埋点是否输出( true输出 false关闭 默认是关闭)
#bizlog=true
#控制台日志关闭 (true 打印 false关闭 默认是关闭)
#console=false
日志文件存放路径(在unslog.jar包中写死的路径):
windos在d://logs/应用名称/日期/日志文件
linux在 在/opt/ci/logs/应用名称/日期/日志文件
四、 日志打印实例
// 一般日志打印
logger.info("test start");
// 日志规则ID(可统一编排)
longbzId = 10000;
// 创建日志对象
UnsLogInfo uli = new UnsLogInfo(bzId);
// 设置日志信息
uli.put("userid", 12434);
uli.put("userName", "name001");
uli.put("startDt", new Date());
// 打印业务日志
logger.info(uli.toString());
// 一般日志打印
logger.info("test end");
五、 说明
日志规则ID:是业务埋点的唯一标示,不同的业务埋点不同,可以根据需要统一编制。
后台进行业务统计分析时重要的标示(日志规则ID对应后台的报警规则ID一个或多个,监控平台并进行统计分析)
注:如果日志采用slf4j的都可以灰度替换,其他的需要自己修改下LoggerFactory的获取方式(也是很简单的)
六、实践
1.导入unslog.jar包,在pom.xml文件中加入如下代码:
com.uns.inf
unslog
1.0.0
2. 使用slf4j的Logger,因为它可以在log4j和logback之间随意切换,根据你使用的logjar包,代码如下:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final Logger log = LoggerFactory.getLogger(getClass());
3.编写一个日志埋点的公用方法,代码如下:
/**
* 日志埋点
* @param curtran
* @param flag 1:成功,0:失败;bzId 日志规则ID
* @return
*/
public static String monitoring(Long bzId, Curtran curtran,String flag) {
// 创建日志对象
UnsLogInfo uli = new UnsLogInfo(bzId);
// 设置日志信息
if (Constant.TRUE.equals(flag)) {
uli.setSuccess(1);
} else {
uli.setFailure(1);
}
if (curtran != null) {
uli.put("merchantId", curtran.getMerchantid());
uli.put("terminalid", curtran.getTerminalid());
uli.put("orderId", curtran.getTrannumber());
uli.put("cardNo", curtran.getCard());
uli.put("amount", curtran.getAmount());
}
return uli.toString();
}
4.项目中应用,代码如下:
// 日志埋点
log.info("Monitoring unspay start");
// 打印业务日志
log.info(Common.monitoring(20005L, curtran, Constant.TRUE));
log.info("Monitoring unspay end");
5.如果是WEB项目,想将控制台的日志输出在catalina.out文件中,则需要新建一个配置文件unslog.properties
在文件中添加如下内容:
#项目名称(工程化项目自动获取,无需修改)
app_name=${projectName}
#日志级别
#log_level=info
#日志存放天数
#maxHistory=30
#业务埋点是否输出( true输出 false关闭 默认是关闭)
bizlog=true
#控制台日志关闭 (true 打印 false关闭 默认是关闭)
console=true
6.如果部署到Linux服务器,需要确认服务器上,是否有预先建立目录/opt/ci/logs 目录
7.注意要点:本次日志埋点使用的是logback,作为日志输出
8.JAR包下载(见附件)