JAVA 日志埋点

 JAVA 日志埋点使用总结:

环境:jdk1.7、tomcat7、win10、maven 3.2.5

一、  删除应用中所有的log jar包

二、  导入unslog jar包

  

<dependency>
     <groupId>com.uns.inf</groupId>
     <artifactId>unslog</artifactId>
     <version>1.0.0</version>
</dependency>

 

三、  在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文件中加入如下代码:

 

<dependency>
     <groupId>com.uns.inf</groupId>
     <artifactId>unslog</artifactId>
     <version>1.0.0</version>
</dependency>

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包下载(见附件) 

 

 

 

 

 

 

 

 

猜你喜欢

转载自xutao5641745.iteye.com/blog/2357165