java动态日志注入工具 anylog
- 授权协议: Apache
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: http://github.com/jobop/anylog
- 软件文档: http://github.com/jobop/anylog
软件介绍
anylog 是一个可以在代码的任意区域无入侵地加入日志的工具,适用于线上问题排查。
anylog 为开发人员提供一个易于使用的平台,帮助开发人员在正在运行的系统中随时加入自己想要的日志,而免于修改代码和重启。
使用场景举例
1、一些同学在写代码时,把异常吃掉了,使得问题难以查找,可以使用这个工具,动态打印出被吃掉 的异常,而不用停机。 2、一些项目依赖第三方jar包,如果发生问题,但第三方包中无日志打印,以往可能需要重新编译第 三方包,加上日志,重启服务,然后排查问题。但使用这个工具,就可以直接动态加入日志,而不用 修改第三方jar包,也不用重启。
已有功能
1、让系统打印某个exception的堆栈,无论此exception是否已经被吃掉都可打印 2、在某个指定类的某个方法的某一行,输出日志。 3、在某个指定类的某个方法的开始,输出日志。 4、在某个指定类的某个方法的结束,输出日志。 5、打印方法耗时,支持方法嵌套。 如果需要扩展新的功能(例如输出jvm的cpu占用,内存大小等),只需要实现spi中的 com.github.jobop.anylog.spi.TransformDescriptor 和com.github.jobop.anylog.spi.TransformHandler接口, 然后把实现的jar包放到providers目录中即可识别。
使用方法
1、获取运行程序: 1)可以到以下地址获取正式发行版:https://github.com/jobop/release/tree/master/anylog 2)你也可以clone下源码后,执行如下命令,生成运行程序,生成的运行程序将在dist目录下 生成windows版本: mvn install 生成linux版本: mvn install -Plinux 2、直接执行startup.bat或者startup.sh即可运行起来 3、访问 http://127.0.0.1:52808 即可使用
功能扩展
anylog利用spi机制实现其扩展,如果你想要对anylog增加新的功能(例如添加返回值打印的功能)可以按照如下步骤操作: 1、使用如下命令,生成一个spi实现工程,并导入eclipse mvn archetype:generate -DarchetypeGroupId=com.github.jobop -DarchetypeArtifactId=anylogspi-archetype -DarchetypeVersion=1.0.4 2、参照该工程中已有的两个例子(一个是在方法开始插入日志,一个是在方法结束插入日志),实现TransformDescriptor和TransformHandler接口 3、把两个接口实现类的全路径,分别加到以下两个文件中 src/main/resources/META-INF/services/com.github.jobop.anylog.spi.TransformDescriptor src/main/resources/META-INF/services/com.github.jobop.anylog.spi.TransformHandler 4、执行mvn install打包,在dist下会生成你的扩展实现jar。 5、把扩展实现jar拷贝到anylog的providers目录下,重启即可生效。 tips:在实现spi时,我们提供了SpiDesc注解,该注解作用在你实现的TransformDescriptor上,可以用来生成功能描述文字。 如果要深入了解spi机制,请自行google:java spi
JavaScript & jQuery
David Sawyer McFarland / O Reilly / 2011-10-28 / USD 39.99
You don't need programming experience to add interactive and visual effects to your web pages with JavaScript. This Missing Manual shows you how the jQuery library makes JavaScript programming fun, ea......一起来看看 《JavaScript & jQuery》 这本书的介绍吧!
