1"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([["7971"],{7171:function(e,n,r){r.r(n),r.d(n,{default:()=>s});var o=r(5893),l=r(65),a=r(6897);function g(e){let n=Object.assign({h1:"h1",a:"a",p:"p",ul:"ul",li:"li",h2:"h2",pre:"pre",code:"code",h3:"h3"},(0,l.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.h1,{id:"log",children:[(0,o.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#log",children:"#"}),"Log"]}),"\n",(0,o.jsx)(n.p,{children:"常è§çåè½æ¯è¾å®åçæ¥å¿åºæ:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{href:"https://github.com/rs/zerolog",rel:"noopener noreferrer",target:"_blank",children:"zerolog"}),": æ³¨éæ§è½åä½å¼éï¼éç¨ç»æåæ¥å¿ï¼éå对æ§è½è¦æ±æé«çåºæ¯"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{href:"https://github.com/sirupsen/logrus",rel:"noopener noreferrer",target:"_blank",children:"logrus"}),": åè½ä¸°å¯ä¸æäºä½¿ç¨ï¼æ¯æå¤ç§è¾åºæ ¼å¼åé©åï¼éåå¿«ééæ"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.a,{href:"https://github.com/uber-go/zap",rel:"noopener noreferrer",target:"_blank",children:"zap"}),": 髿§è½ä¸çµæ´»ï¼æä¾ç»æåæ¥å¿åå¤ç§çº§å«çæ¥å¿è®°å½ï¼éåéè¦é«ååéçåºç¨"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"以ä¸3䏿¥å¿åºé½ä½¿ç¨è¿, ç»¼åæ§è½å使ç¨ä½éªä¸æ¥è¯´ zerolog æä½³, å æ¤æç®æ¯æ: + zerolog: æ§è½å使ç¨ä½éªä¸ç±äºå
¶ä»2个"}),"\n",(0,o.jsxs)(n.h2,{id:"é»è®¤é
ç½®",children:[(0,o.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#é»è®¤é
ç½®",children:"#"}),"é»è®¤é
ç½®"]}),"\n",(0,o.jsxs)(a.mQ,{children:[(0,o.jsx)(a.OK,{label:"toml",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'[log]\n# 0 为æå°æ¥å¿å
¨è·¯å¾, é»è®¤æå°2å±è·¯å¾\ncaller_deep = 3\n# æ¥å¿ç级å«, é»è®¤Debug\nlevel = "debug"\n# å¼å¯Traceæ¶, è®°å½çTraceIdåç§°, é»è®¤trace_id\ntrace_filed = "trace_id"\n\n[log.console]\nenable = true\nno_color = false\n\n[log.file]\n# æ¯å¦å¼å¯æä»¶è®°å½\nenable = false\n# æä»¶çè·¯å¾\nfile_path = ""\n# åä½M, é»è®¤100M\nmax_size = 100\n# é»è®¤ä¿å 6个æä»¶\nmax_backups = 6\n# ä¿åå¤ä¹
\nmax_age = 0\n# æ¯å¦å缩\ncompress = false\n\n'})})}),(0,o.jsx)(a.OK,{label:"env",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-sh",children:'LOG_CALLER_DEEP=3\nLOG_LEVEL="debug"\nLOG_TRACE_FILED="trace_id"\n\nLOG_CONSOLE_ENABLE=true\nLOG_CONSOLE_NO_COLOR=false\n\nLOG_FILE_ENABLE=false\nLOG_FILE_PATH=""\nLOG_FILE_MAX_SIZE=100\nLOG_FILE_MAX_BACKUPS=6\nLOG_FILE_MAX_AGE=0\nLOG_FILE_COMPRESS=false\n'})})})]}),"\n",(0,o.jsxs)(n.p,{children:["æ´è¯¦ç»çä¿¡æ¯è¯·æ¥ç",(0,o.jsx)(n.a,{href:"https://github.com/infraboard/mcube/blob/master/ioc/config/logger/log.go#L89-L99",rel:"noopener noreferrer",target:"_blank",children:"æºç "})]}),"\n",(0,o.jsxs)(n.h2,{id:"åºæ¬ä½¿ç¨",children:[(0,o.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#åºæ¬ä½¿ç¨",children:"#"}),"åºæ¬ä½¿ç¨"]}),"\n",(0,o.jsxs)(n.h3,{id:"global-logger",children:[(0,o.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#global-logger",children:"#"}),"Global Logger"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "github.com/infraboard/mcube/v2/ioc"\n "github.com/infraboard/mcube/v2/ioc/config/log"\n)\n\nfunc main() {\n ioc.DevelopmentSetup()\n\n gLogger := log.L()\n glog.Debug().Msg("this is global logger debug msg")\n}\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"2023-12-24T17:44:30+08:00 DEBUG examples/log/main.go:12 > this is global logger debug msg\n"})}),"\n",(0,o.jsxs)(n.h3,{id:"sub-logger",children:[(0,o.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#sub-logger",children:"#"}),"Sub Logger"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "github.com/infraboard/mcube/v2/ioc"\n "github.com/infraboard/mcube/v2/ioc/config/log"\n)\n\nfunc main() {\n ioc.DevelopmentSetup()\n\n subLogger := log.Sub("app1")\n sublog.Debug().Msg("this is app1 sub logger debug msg")\n}\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"2023-12-24T
117:44:30+08:00 DEBUG examples/log/main.go:15 > this is app1 sub logger debug msg component:APP1\n"})}),"\n",(0,o.jsxs)(n.h3,{id:"context-logger",children:[(0,o.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#context-logger",children:"#"}),"Context Logger"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "context"\n\n "github.com/infraboard/mcube/v2/ioc"\n "github.com/infraboard/mcube/v2/ioc/config/log"\n)\n\nfunc main() {\n ioc.DevelopmentSetup()\n\n log.FromCtx(c.Request.Context()).Info().Msgf("debug log")\n}\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"2023-12-24T17:47:02+08:00 DEBUG examples/log/main.go:21 > this is app1 trace logger debug msg component:APP1 trace_id:00000000000000000000000000000000\n"})})]})}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:n}=Object.assign({},(0,l.ah)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(g,e)})):g(e)}let s=i;i.__RSPRESS_PAGE_META={},i.__RSPRESS_PAGE_META["guide%2Fconfig%2Flog.mdx"]={toc:[{id:"é»è®¤é
ç½®",text:"é»è®¤é
ç½®",depth:2},{id:"åºæ¬ä½¿ç¨",text:"åºæ¬ä½¿ç¨",depth:2},{id:"global-logger",text:"Global Logger",depth:3},{id:"sub-logger",text:"Sub Logger",depth:3},{id:"context-logger",text:"Context Logger",depth:3}],title:"Log",headingTitle:"Log",frontmatter:{}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.