donnie4w / go-logger

High-performance Go logging library, with concurrency performance 10 times or more faster than the official library. Go高性能日志库,适用于高并发场景,并发性能是官方库10倍或以上
https://tlnet.top/logdoc
BSD 3-Clause "New" or "Revised" License
305 stars 103 forks source link

文件名和行数支持相对路径? #39

Open lnb-wxqy opened 2 months ago

lnb-wxqy commented 2 months ago

你好,后面版本有考虑支持输出打印相对路径和行数吗? 例如:我配置长文件名,输出结果: E:/code/go_work/src/go-learn/go-logger-demo/main.go:31 - this is a error message

希望输出结果:go-learn/go-logger-demo/main.go:31 - this is a error message

谢谢

donnie4w commented 2 months ago

@lnb-wxqy 是的,缺少了相对路径的属性,我已经加上格式属性 FORMAT_RELATIVEFILENAME ,请更新到版本 0.26.1

lnb-wxqy commented 2 months ago

image image

windows上测试,相对路径是正确的; 打包后在Linux上运行,输出的路径是绝对路径

donnie4w commented 2 months ago

@lnb-wxqy 我在linux运行测试时正常的,如截图

你的执行文件的位置似乎不是在go-learngo-logger-demo之下,而是 go-logger-test之下,它是获取日志文件绝对路径再减去工作目录go-logger-test的绝对路径,得到余下的相对路径。相对路径主要取决于你执行程序当前的工作目录

lnb-wxqy commented 2 months ago

你这是在Linux上编写的代码。 我是在windows上编写的代码,编译后在linux上运行出现的这种情况,日志中路径输出的windows的路径。 image

donnie4w commented 2 months ago

@lnb-wxqy 好的,编译go项目时,是会把项目的绝对路径打包到执行文件中,这是go本身机制 你编译时可以添加 -trimpath 参数,去掉绝对路径信息,只保留工作区的路径。如 go build -trimpath main.go 它会把 E:/code/go_work/src 去掉,只保留后面项目的路径信息 但这样的话,即使你配置的日志格式是长文件名 FORMAT_LONGFILENAME ,也不会带有 E:/code/go_work/src 信息