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

logrusLogger.SetReportCaller 设置问题 #18

Closed
jjeejj opened this issue Mar 28, 2023 · 8 comments
Closed

logrusLogger.SetReportCaller 设置问题 #18

jjeejj opened this issue Mar 28, 2023 · 8 comments
Assignees

Comments

@jjeejj
Copy link

jjeejj commented Mar 28, 2023

目的:打印 出来 所在的文件 和行号
使用

logrusLogger := logrus.StandardLogger()
logger := kitexlogrus.NewLogger(kitexlogrus.WithLogger(logrusLogger))
logrusLogger.SetReportCaller(true)

打印出来 是 obs-opentelemetry/logging/logrus@v0.0.0-20221109071748-a433b0b57972/logger.go:93 是 这个位置,不是 实际业务代码的位置,这个有办法解决吗?

@jjeejj
Copy link
Author

jjeejj commented Mar 31, 2023

有解决方案吗? 用 kitex 微服务开发 打印日志后,如果没有对应的文件和 行号,定位代码位置的效率比较低

@rogerogers
Copy link
Collaborator

可以参考下这个,is-it-possible-to-wrap-logrus-logger-functions-without-losing-the-line-number-pr,另外zap的话有自带zap.AddCallerSkip方法。

有解决方案吗? 用 kitex 微服务开发 打印日志后,如果没有对应的文件和 行号,定位代码位置的效率比较低

@jjeejj
Copy link
Author

jjeejj commented Apr 10, 2023

可以参考下这个,is-it-possible-to-wrap-logrus-logger-functions-without-losing-the-line-number-pr,另外zap的话有自带zap.AddCallerSkip方法。

有解决方案吗? 用 kitex 微服务开发 打印日志后,如果没有对应的文件和 行号,定位代码位置的效率比较低

有使用示例吗?

@rogerogers
Copy link
Collaborator

logrus可以简单看下这里。
https://gist.github.com/rogerogers/175d5e8bd451992175e553de9dc8a615

zap就比较简单了。

package main

import (
	"context"
	"github.com/cloudwego/hertz/pkg/common/hlog"
	hertzzap "github.com/hertz-contrib/logger/zap"
	"go.uber.org/zap"
)

func main() {
	logger := hertzzap.NewLogger(hertzzap.WithZapOptions(zap.WithCaller(true), zap.AddCallerSkip(2)))
	hlog.SetLogger(logger)

	hlog.CtxInfof(context.Background(), "hello %s", "hertz")
}

@rogerogers
Copy link
Collaborator

示例我用的hertz,kitex代码差不多的。

@jjeejj
Copy link
Author

jjeejj commented Apr 10, 2023

logrus可以简单看下这里。 gist.github.com/rogerogers/175d5e8bd451992175e553de9dc8a615

zap就比较简单了。

package main

import (
	"context"
	"github.com/cloudwego/hertz/pkg/common/hlog"
	hertzzap "github.com/hertz-contrib/logger/zap"
	"go.uber.org/zap"
)

func main() {
	logger := hertzzap.NewLogger(hertzzap.WithZapOptions(zap.WithCaller(true), zap.AddCallerSkip(2)))
	hlog.SetLogger(logger)

	hlog.CtxInfof(context.Background(), "hello %s", "hertz")
}

已解决

@damon008
Copy link

这个讲的啥?要的是日志打印的来源文件,这说的啥????

@rogerogers
Copy link
Collaborator

这个讲的啥?要的是日志打印的来源文件,这说的啥????

解决方案就是调整runtime信息来输出日志打印位置,有什么疑问可以具体描述下?

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

5 participants