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包下载(见附件)
相关推荐
Log4web是一个基于Java的日志管理框架,它提供了强大的日志收集、存储和分析能力。而WebSocket则是一种在客户端和服务器之间建立长时间连接的协议,为实时通信提供了便利。将这两者结合起来,可以实现前端操作的实时...
PV、UV统计用到的数据文件
浙政钉埋点
4. **收集与传输数据**:埋点生成的数据应被收集并发送到日志系统或专门的追踪服务器,如 Zipkin 或 Jaeger。 5. **可视化展示**:在追踪服务器上,这些调用链数据可以被可视化展示,帮助开发者理解系统内部的工作...
AspectJ是一个强大的面向切面编程(AOP)工具,它扩展了Java语言,允许开发者编写"切面",即关注点的模块化,如日志、事务管理或性能监控。在Android开发中,AspectJ可以用来拦截方法调用,方便地在不修改原有代码的...
本文将深入探讨如何利用Android字节码插件在编译期间动态修改代码,实现全埋点日志采集功能模块的添加,以及如何对常见控件进行监听处理。 首先,了解什么是字节码插件。在Android应用开发中,Gradle插件广泛用于...
- **日志监控**:收集系统运行过程中的各类日志信息。 - **方法监控**:监测应用程序内部的方法执行情况,如执行时间、调用频率等。 - **JVM监控**:跟踪Java虚拟机的运行状态,包括内存使用情况、垃圾回收等。 - **...
在Android应用开发中,埋点计时是一种常见的性能优化手段,它可以帮助开发者了解应用程序的关键操作执行的时间消耗,以便找出性能瓶颈。"Android-埋点计时Gradle插件利用ASM插入字节码"是一个专为Android开发设计的...
该项目是一个商用产品开源,包括用户埋点数据采集、用户标签分群和画像、智慧运营、营销等。项目采用Nginx+Flume+kafka实现日志收集,Flink进行实时流处理,ClickHouse作为实时数仓,HDFS作为数据备份。适合用于学习...
鹰眼是淘宝的分布式日志跟踪系统,通过收集和分析在不同的网络调用中间件上的日志埋点,可以得到同一次请求上的各个系统的调用链关系,有助于梳理系统间的依赖来源关系、容量规划,也有助于分析系统调用瓶颈、定位...
SkyWalking 的 Java Agent 就是利用了这种机制,通过在 JVM 启动时添加 `-javaagent` 参数,使得 SkyWalking 能够自动对目标应用进行探针埋点,收集服务间调用的链路信息以及各种性能指标。 以下是关于 SkyWalking ...
TLog是一个轻量级的分布式日志标记追踪...支持日志标签的自定义模板的配置,提供多个系统级埋点标签的选择。支持异步线程的追踪,包括线程池,多级异步线程等场景。几乎无性能损耗,快速稳定,经过压测,损耗在0.01%
【AspectJDemo埋点】项目是一个使用AspectJ技术进行日志埋点的示例工程,旨在展示如何通过面向切面编程(AOP)来实现应用中的监控与数据分析。AspectJ是一种强大的Java语言扩展,它引入了切面的概念,使得我们可以将...
- **技术实现**:例如,使用SpringAop进行日志埋点,Spring Security + JWT实现RBAC权限控制,Docker+Jenkins进行持续集成和部署等。 5. **项目经历**: - **项目描述**:简述项目背景、技术架构和主要功能,这能...
kafka的监控消费组,app在日志中进行各种event埋点(如:第三方异常报警、请求耗时异常报警等) business-group: kafka的业务消费组 trace-group: 通过日志进行rpc调用trace跟踪(dapper论文) es: 日志存储db,并...
1. **Dubbo**:Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC框架,它提供了服务注册、服务发现、负载均衡、流量控制、熔断等核心功能,是构建分布式系统的关键组件。在本项目中,Dubbo负责服务之间的通信,...
AOP通过将关注点(如日志记录、事务管理、安全性检查等)分离到单独的模块,称为“切面”(Aspects),来简化应用程序的设计和维护。AspectJ是Java平台上的一个开源框架,它提供了强大的AOP支持,使得开发者能够方便...
支持日志标签的自定义模板的配置,提供多个系统级埋点标签的选择 支持异步线程的追踪,包括线程池,多级异步线程等场景 几乎无性能损耗,快速稳定 TLog 更新日志: v1.3.1 bug: #I3RROF:xxljob的依赖会强制传递
同时,还可对手机进行基于Monkey原理的压力测试,针对某一款app进行控件遍历测试,埋点统计,接口测试等,此外,还可以对手机的CPU、内存、电池温度、CPU温度、流量使用情况进行检测,返回包括日志和截图的详细测试...