How to custom log format when use zap?
Currently, our project's log format is like:
www.abcdef.com`3`1s
I want to use Go to rewrite project and import zap as log tool. By zap the log's format is like:
"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"
I google its usage, but I don't find out any way that changes zap's format to above mentioned, so I want to seek some advice here.
go logging
add a comment |
Currently, our project's log format is like:
www.abcdef.com`3`1s
I want to use Go to rewrite project and import zap as log tool. By zap the log's format is like:
"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"
I google its usage, but I don't find out any way that changes zap's format to above mentioned, so I want to seek some advice here.
go logging
One of zap's key features is that it's fast because it doesn't have custom formatting, so I'd kind of doubt it has the feature you want, but that's just from reading the docs for 5 minutes.
– Flimzy
Sep 11 '18 at 11:12
I found out the way to record complete string format. Thezapcoresupport a struct EncoderConfig. When I set matter keys empty value, zap doesn't record info of these keys. Config is like this:cfg := zapcore.EncoderConfig TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: ""Anyway, thank you very much for your answer!
– shinwu
Sep 13 '18 at 3:41
add a comment |
Currently, our project's log format is like:
www.abcdef.com`3`1s
I want to use Go to rewrite project and import zap as log tool. By zap the log's format is like:
"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"
I google its usage, but I don't find out any way that changes zap's format to above mentioned, so I want to seek some advice here.
go logging
Currently, our project's log format is like:
www.abcdef.com`3`1s
I want to use Go to rewrite project and import zap as log tool. By zap the log's format is like:
"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"
I google its usage, but I don't find out any way that changes zap's format to above mentioned, so I want to seek some advice here.
go logging
go logging
edited Sep 13 '18 at 4:01
shinwu
asked Sep 11 '18 at 10:58
shinwushinwu
135
135
One of zap's key features is that it's fast because it doesn't have custom formatting, so I'd kind of doubt it has the feature you want, but that's just from reading the docs for 5 minutes.
– Flimzy
Sep 11 '18 at 11:12
I found out the way to record complete string format. Thezapcoresupport a struct EncoderConfig. When I set matter keys empty value, zap doesn't record info of these keys. Config is like this:cfg := zapcore.EncoderConfig TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: ""Anyway, thank you very much for your answer!
– shinwu
Sep 13 '18 at 3:41
add a comment |
One of zap's key features is that it's fast because it doesn't have custom formatting, so I'd kind of doubt it has the feature you want, but that's just from reading the docs for 5 minutes.
– Flimzy
Sep 11 '18 at 11:12
I found out the way to record complete string format. Thezapcoresupport a struct EncoderConfig. When I set matter keys empty value, zap doesn't record info of these keys. Config is like this:cfg := zapcore.EncoderConfig TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: ""Anyway, thank you very much for your answer!
– shinwu
Sep 13 '18 at 3:41
One of zap's key features is that it's fast because it doesn't have custom formatting, so I'd kind of doubt it has the feature you want, but that's just from reading the docs for 5 minutes.
– Flimzy
Sep 11 '18 at 11:12
One of zap's key features is that it's fast because it doesn't have custom formatting, so I'd kind of doubt it has the feature you want, but that's just from reading the docs for 5 minutes.
– Flimzy
Sep 11 '18 at 11:12
I found out the way to record complete string format. The
zapcore support a struct EncoderConfig. When I set matter keys empty value, zap doesn't record info of these keys. Config is like this: cfg := zapcore.EncoderConfig TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: "" Anyway, thank you very much for your answer!– shinwu
Sep 13 '18 at 3:41
I found out the way to record complete string format. The
zapcore support a struct EncoderConfig. When I set matter keys empty value, zap doesn't record info of these keys. Config is like this: cfg := zapcore.EncoderConfig TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: "" Anyway, thank you very much for your answer!– shinwu
Sep 13 '18 at 3:41
add a comment |
2 Answers
2
active
oldest
votes
set EncoderConfig
cfg := zapcore.EncoderConfig
TimeKey: "",
LevelKey: "",
NameKey: "",
CallerKey: "",
MessageKey: "M",
StacktraceKey: ""
add a comment |
Zap allows to customize encoders. In the linked article author sets a field EncodeLevel of EncoderConfig to a custom function. That way you can change encoding of logging level, timestamp, duration, caller and logger name.
You also can use zap.RegisterEncoder to add your custom encoder and then set Encoding field in config to the name of your encoder.
Keep in mind that encoder is used on every call of a logging methods, so it must have a good perfomance.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52274353%2fhow-to-custom-log-format-when-use-zap%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
set EncoderConfig
cfg := zapcore.EncoderConfig
TimeKey: "",
LevelKey: "",
NameKey: "",
CallerKey: "",
MessageKey: "M",
StacktraceKey: ""
add a comment |
set EncoderConfig
cfg := zapcore.EncoderConfig
TimeKey: "",
LevelKey: "",
NameKey: "",
CallerKey: "",
MessageKey: "M",
StacktraceKey: ""
add a comment |
set EncoderConfig
cfg := zapcore.EncoderConfig
TimeKey: "",
LevelKey: "",
NameKey: "",
CallerKey: "",
MessageKey: "M",
StacktraceKey: ""
set EncoderConfig
cfg := zapcore.EncoderConfig
TimeKey: "",
LevelKey: "",
NameKey: "",
CallerKey: "",
MessageKey: "M",
StacktraceKey: ""
answered Sep 13 '18 at 3:47
shinwushinwu
135
135
add a comment |
add a comment |
Zap allows to customize encoders. In the linked article author sets a field EncodeLevel of EncoderConfig to a custom function. That way you can change encoding of logging level, timestamp, duration, caller and logger name.
You also can use zap.RegisterEncoder to add your custom encoder and then set Encoding field in config to the name of your encoder.
Keep in mind that encoder is used on every call of a logging methods, so it must have a good perfomance.
add a comment |
Zap allows to customize encoders. In the linked article author sets a field EncodeLevel of EncoderConfig to a custom function. That way you can change encoding of logging level, timestamp, duration, caller and logger name.
You also can use zap.RegisterEncoder to add your custom encoder and then set Encoding field in config to the name of your encoder.
Keep in mind that encoder is used on every call of a logging methods, so it must have a good perfomance.
add a comment |
Zap allows to customize encoders. In the linked article author sets a field EncodeLevel of EncoderConfig to a custom function. That way you can change encoding of logging level, timestamp, duration, caller and logger name.
You also can use zap.RegisterEncoder to add your custom encoder and then set Encoding field in config to the name of your encoder.
Keep in mind that encoder is used on every call of a logging methods, so it must have a good perfomance.
Zap allows to customize encoders. In the linked article author sets a field EncodeLevel of EncoderConfig to a custom function. That way you can change encoding of logging level, timestamp, duration, caller and logger name.
You also can use zap.RegisterEncoder to add your custom encoder and then set Encoding field in config to the name of your encoder.
Keep in mind that encoder is used on every call of a logging methods, so it must have a good perfomance.
edited Nov 15 '18 at 12:15
answered Nov 15 '18 at 11:58
NomanNoman
13
13
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52274353%2fhow-to-custom-log-format-when-use-zap%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
One of zap's key features is that it's fast because it doesn't have custom formatting, so I'd kind of doubt it has the feature you want, but that's just from reading the docs for 5 minutes.
– Flimzy
Sep 11 '18 at 11:12
I found out the way to record complete string format. The
zapcoresupport a struct EncoderConfig. When I set matter keys empty value, zap doesn't record info of these keys. Config is like this:cfg := zapcore.EncoderConfig TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: ""Anyway, thank you very much for your answer!– shinwu
Sep 13 '18 at 3:41