java c auto_auto-log: The auto log tool for java.(java 自动日志输出,基于字节码,兼容 spring)...

auto-log

auto-log 是一款为 java 设计的自动日志监控框架。

auto-log.svg?branch=master

badge.svg

license-Apache2-FF0080.svg

open-source.svg?v=103

创作目的

经常会写一些工具,有时候手动加一些日志很麻烦,引入 spring 又过于大材小用。

所以希望从从简到繁实现一个工具,便于平时使用。

特性

基于注解+字节码,配置灵活

自动适配常见的日志框架

支持编程式的调用

支持注解式,完美整合 spring

支持整合 spring-boot

支持慢日志阈值指定,耗时,入参,出参,异常信息等常见属性指定

快速开始

maven 引入

com.github.houbb

auto-log-core

${最新版本}

入门案例

UserService userService = AutoLogHelper.proxy(new UserServiceImpl());

userService.queryLog("1");

日志如下

[INFO] [2020-05-29 16:24:06.227] [main] [c.g.h.a.l.c.s.i.AutoLogMethodInterceptor.invoke] - public java.lang.String com.github.houbb.auto.log.test.service.impl.UserServiceImpl.queryLog(java.lang.String) param is [1]

[INFO] [2020-05-29 16:24:06.228] [main] [c.g.h.a.l.c.s.i.AutoLogMethodInterceptor.invoke] - public java.lang.String com.github.houbb.auto.log.test.service.impl.UserServiceImpl.queryLog(java.lang.String) result is result-1

代码

其中方法实现如下:

UserService.java

public interface UserService {

String queryLog(final String id);

}

UserServiceImpl.java

直接使用注解 @AutoLog 指定需要打日志的方法即可。

public class UserServiceImpl implements UserService {

@Override

@AutoLog

public String queryLog(String id) {

return "result-"+id;

}

}

注解说明

核心注解 @AutoLog 的属性说明如下:

属性

类型

默认值

说明

param

boolean

true

是否打印入参

result

boolean

true

是否打印出参

costTime

boolean

false

是否打印耗时

exception

boolean

true

是否打印异常

slowThresholdMills

long

-1

当这个值大于等于 0 时,且耗时超过配置值,会输出慢日志

spring 整合使用

注解声明

使用 @EnableAutoLog 启用自动日志输出

@Configurable

@ComponentScan(basePackages = "com.github.houbb.auto.log.test.service")

@EnableAutoLog

public class SpringConfig {

}

测试代码

@ContextConfiguration(classes = SpringConfig.class)

@RunWith(SpringJUnit4ClassRunner.class)

public class SpringServiceTest {

@Autowired

private UserService userService;

@Test

public void queryLogTest() {

userService.queryLog("1");

}

}

输出结果

信息: public java.lang.String com.github.houbb.auto.log.test.service.impl.UserServiceImpl.queryLog(java.lang.String) param is [1]

五月 30, 2020 12:17:51 下午 com.github.houbb.auto.log.core.support.interceptor.AutoLogMethodInterceptor info

信息: public java.lang.String com.github.houbb.auto.log.test.service.impl.UserServiceImpl.queryLog(java.lang.String) result is result-1

五月 30, 2020 12:17:51 下午 org.springframework.context.support.GenericApplicationContext doClose

Road-Map

注解特性拓展

是否可以支持自定义 handler

jvm-sandbox 特性

编译时注解特性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值