Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lnb-wxqy opened this issue Aug 25, 2024 · 5 comments
Open

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

lnb-wxqy opened this issue Aug 25, 2024 · 5 comments

Comments

@lnb-wxqy
Copy link

你好,后面版本有考虑支持输出打印相对路径和行数吗?
例如:我配置长文件名,输出结果:
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
Copy link
Owner

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

@lnb-wxqy
Copy link
Author

image
image

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

@donnie4w
Copy link
Owner

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

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

@lnb-wxqy
Copy link
Author

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

@donnie4w
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants