How to custom log format when use zap?










0















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.










share|improve this question
























  • 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
















0















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.










share|improve this question
























  • 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














0












0








0








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.










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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. 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


















  • 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

















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













2 Answers
2






active

oldest

votes


















0














set EncoderConfig



cfg := zapcore.EncoderConfig
TimeKey: "",
LevelKey: "",
NameKey: "",
CallerKey: "",
MessageKey: "M",
StacktraceKey: ""






share|improve this answer






























    0














    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.






    share|improve this answer
























      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
      );



      );













      draft saved

      draft discarded


















      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









      0














      set EncoderConfig



      cfg := zapcore.EncoderConfig
      TimeKey: "",
      LevelKey: "",
      NameKey: "",
      CallerKey: "",
      MessageKey: "M",
      StacktraceKey: ""






      share|improve this answer



























        0














        set EncoderConfig



        cfg := zapcore.EncoderConfig
        TimeKey: "",
        LevelKey: "",
        NameKey: "",
        CallerKey: "",
        MessageKey: "M",
        StacktraceKey: ""






        share|improve this answer

























          0












          0








          0







          set EncoderConfig



          cfg := zapcore.EncoderConfig
          TimeKey: "",
          LevelKey: "",
          NameKey: "",
          CallerKey: "",
          MessageKey: "M",
          StacktraceKey: ""






          share|improve this answer













          set EncoderConfig



          cfg := zapcore.EncoderConfig
          TimeKey: "",
          LevelKey: "",
          NameKey: "",
          CallerKey: "",
          MessageKey: "M",
          StacktraceKey: ""







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Sep 13 '18 at 3:47









          shinwushinwu

          135




          135























              0














              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.






              share|improve this answer





























                0














                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.






                share|improve this answer



























                  0












                  0








                  0







                  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.






                  share|improve this answer















                  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.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Nov 15 '18 at 12:15

























                  answered Nov 15 '18 at 11:58









                  NomanNoman

                  13




                  13



























                      draft saved

                      draft discarded
















































                      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.




                      draft saved


                      draft discarded














                      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





















































                      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







                      這個網誌中的熱門文章

                      What does pagestruct do in Eviews?

                      Dutch intervention in Lombok and Karangasem

                      Channel Islands