V1.1.0
新功能:预新增MCCBOL(method call chain based on log )功能
//TODO 如何标志一个调用链的起点,通过方法的代码行确定(弊端如果存在动态OSGI技术可能出现bug,这种可以忽略)
V0.0.4
毫无修改,只想好好发个版本
V0.0.3_1
1.修复因class名字太长.在缩短时,取得是第二字母而不是第一个字母
2.修复logger.info()方法重载的bug.
#版本变更
v0.0.3
1.删除Logfactory中脑残的代码
2.增加@ContentType,@Channel用来分别指定日志内容的内容,以及实时日志队列的Topic.
3.去掉色彩日志输出.
V0.0.21
1.提供日志级别配置
V0.0.2
1.提供kafka日志对接.(使用Kafka Appender时,请加上FileAppender做好Kafka连接断开时的日志备份)
V0.0.1
1.提供Console日志输出
2.提供File日志输出
#使用说明
logLevel: Debug //日志级别
targets: #记录器
- File #启用文件Appender
- Sout #启用控制台Appender
- Kafka #启用Kafka Appender
kafka:
kafkaServer: 192.168.2.56:8084 #日志服务器地址
kafkaKey: test #kafka key(向日志服务器申请)
kafkaCert: test #kafka Cert(向日志服务器申请)
kafkaBackDir: D:/test/kafka/ #Kafka链接失败备份文件路径
host: 0.0.0.0 # 项目启动占用IP
port: 2222 # 项目启动占用端口
application: "springboot application" #项目名称
fileProperties: #如果设置了Targets-File一定要配置该项
fileDir: D:/test/ #日志输出目录
fileName: log.log #日志输出文件
rolling: Hour #日志切割按照间隔时间
fileSize: 1MB #日志切割按照安件大小
#日志输出模板
# %t 时间
# %l 日志等级
# %p 进程号
# %mn 方法名
# %ln 行号
# %cn 类名
# %c 日志内容
# %tid 线程Id
# %traid 线程事务Id
# %spanId spanIndexId
partten: "%-23{yyyy-MM-dd HH:mm:ss.sss}t %5l %-5p --- [%15mn:%ln] %-41cn: %c"
<dependency>
<groupId>com.daqsoft.log</groupId>
<artifactId>log-util</artifactId>
<version>0.0.21</version>
</dependency>
public class LoggerDemo {
Logger logger = LogFactory.getLogger(LoggerDemo.class);
@Test
//这里添加LogModel注解标识 当前方法是属于什么模块.Eg:用户模块
@LogModel("测试demo")
//这里用来指定实时日志队列topic,放在方法上,那么这个方法所有的日志类型都会被输出到这个topic上
@Channel("Jikebao")
public void log() throws InterruptedException {
logger.info("测试info");
logger.info("测试%s","info");
logger.debug("测试debug");
logger.debug("测试%s","debug");
logger.error("测试error");
//如果需要单条输出到日志队列中,在info中指定.无法指定其他日志级别单条输出.
logger.info("Jikebao","测试日志队列");
logger.error("测试%s","error");
logger.warn("测试warn");
logger.warn("测试%s","warn");
logger.log("测试自定级别", Constans.ERROR);
}
}
Spilt Line
上图为最基本的时序图,其中个别过程并没有画出.异步操作放在了最后的Appender处理