From d41a471046d2118be98ffbef11d5b17cd887faaa Mon Sep 17 00:00:00 2001 From: yumaojun03 <719118794@qq.com> Date: Sun, 15 Mar 2026 12:05:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85mcube=20=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day07/example/etc/application.toml | 13 ++++++- day07/example/go.mod | 3 ++ day07/example/go.sum | 8 ++++ day07/example/logs/main.json.log | 32 ++++++++++++++++ day07/example/logs/mcube_app.json.log | 54 +++++++++++++++++++++++++++ day07/example/main.go | 31 ++++++++++----- day07/ioc.drawio | 19 ++++++++++ day07/log/README.md | 3 ++ 8 files changed, 153 insertions(+), 10 deletions(-) create mode 100644 day07/example/logs/main.json.log create mode 100644 day07/example/logs/mcube_app.json.log create mode 100644 day07/ioc.drawio create mode 100644 day07/log/README.md diff --git a/day07/example/etc/application.toml b/day07/example/etc/application.toml index b478b11..a8c0c8d 100644 --- a/day07/example/etc/application.toml +++ b/day07/example/etc/application.toml @@ -1,3 +1,6 @@ +[app] + name = "mcube_app" + [datasource] host = "127.0.0.1" port = 3306 @@ -9,4 +12,12 @@ # HTTP服务Host host = "127.0.0.1" # HTTP服务端口 - port = 8010 \ No newline at end of file + port = 8010 + +[log] +# 日志的级别, 默认Debug +level = "info" + +[log.file] +# 是否开启文件记录 +enable = true \ No newline at end of file diff --git a/day07/example/go.mod b/day07/example/go.mod index 6359c09..789da31 100644 --- a/day07/example/go.mod +++ b/day07/example/go.mod @@ -45,6 +45,7 @@ require ( github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/vault-client-go v0.4.3 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/pgx/v5 v5.6.0 // indirect @@ -74,6 +75,8 @@ require ( github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rs/zerolog v1.34.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect + github.com/spf13/cobra v1.10.1 // indirect + github.com/spf13/pflag v1.0.9 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.2 // indirect diff --git a/day07/example/go.sum b/day07/example/go.sum index 4309e50..9cf8549 100644 --- a/day07/example/go.sum +++ b/day07/example/go.sum @@ -19,6 +19,7 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -90,6 +91,8 @@ github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9 github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= github.com/hashicorp/vault-client-go v0.4.3 h1:zG7STGVgn/VK6rnZc0k8PGbfv2x/sJExRKHSUg3ljWc= github.com/hashicorp/vault-client-go v0.4.3/go.mod h1:4tDw7Uhq5XOxS1fO+oMtotHL7j4sB9cp0T7U6m4FzDY= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/infraboard/mcube/v2 v2.1.4 h1:45j82fDgLnGdnuQisob8N84UikWit/NMn0aq5ErJOI0= github.com/infraboard/mcube/v2 v2.1.4/go.mod h1:M/UxG9LsdiBVdMKnoCnDOzr3CR7PNBXsygTbB5U6Ibg= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= @@ -165,8 +168,13 @@ github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWN github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= diff --git a/day07/example/logs/main.json.log b/day07/example/logs/main.json.log new file mode 100644 index 0000000..f79a17f --- /dev/null +++ b/day07/example/logs/main.json.log @@ -0,0 +1,32 @@ +{"level":"warn","group":"default","hostname":"oldfishmpb-9.local","logger":"vault","time":"2026-03-15T11:42:21+08:00","caller":"config/vault/vault.go:113","message":"vault address is empty, skipping initialization"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"gin_webframework","time":"2026-03-15T11:42:21+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"datasource","time":"2026-03-15T11:42:21+08:00","caller":"config/datasource/grom.go:287","message":"using static credentials from config file"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"metric","time":"2026-03-15T11:42:21+08:00","caller":"metric/gin/metric.go:89","message":"Get the Metric using http://127.0.0.1:8010/metrics"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"health_check","time":"2026-03-15T11:42:21+08:00","caller":"health/gin/check.go:55","message":"Get the Health using http://127.0.0.1:8010/healthz"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"jsonrpc","time":"2026-03-15T11:42:21+08:00","caller":"config/jsonrpc/service.go:114","message":"no reigstry service"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:42:21+08:00","caller":"ioc/server/server.go:79","message":"loaded configs: [app.1.0.0 trace.1.0.0 log.1.0.0 vault.1.0.0 gin_webframework.1.0.0 datasource.1.0.0 grpc.1.0.0 http.1.0.0]"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:42:21+08:00","caller":"ioc/server/server.go:79","message":"loaded default: []"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:42:21+08:00","caller":"ioc/server/server.go:79","message":"loaded controllers: []"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:42:21+08:00","caller":"ioc/server/server.go:79","message":"loaded apis: [metric.v1 health.1.0.0 module_a.1.0.0 jsonrpc.1.0.0]"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T11:42:21+08:00","caller":"config/http/http.go:145","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8010"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","time":"2026-03-15T11:42:33+08:00","caller":"day07/example/main.go:76","message":"GetDbStats"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:44:06+08:00","caller":"ioc/server/server.go:109","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T11:44:06+08:00","caller":"config/http/http.go:153","message":"start graceful shutdown"} +{"level":"error","group":"default","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T11:44:06+08:00","caller":"config/http/http.go:147","message":"http: Server closed"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:44:06+08:00","caller":"ioc/server/server.go:123","message":"http service stop complete"} +{"level":"warn","group":"default","hostname":"oldfishmpb-9.local","logger":"vault","time":"2026-03-15T11:44:09+08:00","caller":"config/vault/vault.go:113","message":"vault address is empty, skipping initialization"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"gin_webframework","time":"2026-03-15T11:44:09+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"datasource","time":"2026-03-15T11:44:09+08:00","caller":"config/datasource/grom.go:287","message":"using static credentials from config file"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"metric","time":"2026-03-15T11:44:09+08:00","caller":"metric/gin/metric.go:89","message":"Get the Metric using http://127.0.0.1:8010/metrics"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"health_check","time":"2026-03-15T11:44:09+08:00","caller":"health/gin/check.go:55","message":"Get the Health using http://127.0.0.1:8010/healthz"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"jsonrpc","time":"2026-03-15T11:44:09+08:00","caller":"config/jsonrpc/service.go:114","message":"no reigstry service"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:44:09+08:00","caller":"ioc/server/server.go:79","message":"loaded configs: [app.1.0.0 trace.1.0.0 log.1.0.0 vault.1.0.0 gin_webframework.1.0.0 datasource.1.0.0 grpc.1.0.0 http.1.0.0]"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:44:09+08:00","caller":"ioc/server/server.go:79","message":"loaded default: []"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:44:09+08:00","caller":"ioc/server/server.go:79","message":"loaded controllers: []"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:44:09+08:00","caller":"ioc/server/server.go:79","message":"loaded apis: [metric.v1 health.1.0.0 module_a.1.0.0 jsonrpc.1.0.0]"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T11:44:09+08:00","caller":"config/http/http.go:145","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8010"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"api handler","time":"2026-03-15T11:44:11+08:00","caller":"day07/example/main.go:76","message":"GetDbStats"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:59:40+08:00","caller":"ioc/server/server.go:109","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T11:59:40+08:00","caller":"config/http/http.go:153","message":"start graceful shutdown"} +{"level":"info","group":"default","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T11:59:40+08:00","caller":"ioc/server/server.go:123","message":"http service stop complete"} +{"level":"error","group":"default","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T11:59:40+08:00","caller":"config/http/http.go:147","message":"http: Server closed"} diff --git a/day07/example/logs/mcube_app.json.log b/day07/example/logs/mcube_app.json.log new file mode 100644 index 0000000..53d0d71 --- /dev/null +++ b/day07/example/logs/mcube_app.json.log @@ -0,0 +1,54 @@ +{"level":"warn","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"vault","time":"2026-03-15T12:02:32+08:00","caller":"config/vault/vault.go:113","message":"vault address is empty, skipping initialization"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"gin_webframework","time":"2026-03-15T12:02:32+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"datasource","time":"2026-03-15T12:02:32+08:00","caller":"config/datasource/grom.go:287","message":"using static credentials from config file"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"metric","time":"2026-03-15T12:02:32+08:00","caller":"metric/gin/metric.go:89","message":"Get the Metric using http://127.0.0.1:8010/metrics"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"health_check","time":"2026-03-15T12:02:32+08:00","caller":"health/gin/check.go:55","message":"Get the Health using http://127.0.0.1:8010/healthz"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"jsonrpc","time":"2026-03-15T12:02:32+08:00","caller":"config/jsonrpc/service.go:114","message":"no reigstry service"} +{"level":"warn","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"vault","time":"2026-03-15T12:02:36+08:00","caller":"config/vault/vault.go:113","message":"vault address is empty, skipping initialization"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"gin_webframework","time":"2026-03-15T12:02:36+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"datasource","time":"2026-03-15T12:02:36+08:00","caller":"config/datasource/grom.go:287","message":"using static credentials from config file"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"metric","time":"2026-03-15T12:02:36+08:00","caller":"metric/gin/metric.go:89","message":"Get the Metric using http://127.0.0.1:8010/metrics"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"health_check","time":"2026-03-15T12:02:36+08:00","caller":"health/gin/check.go:55","message":"Get the Health using http://127.0.0.1:8010/healthz"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"jsonrpc","time":"2026-03-15T12:02:36+08:00","caller":"config/jsonrpc/service.go:114","message":"no reigstry service"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:02:36+08:00","caller":"ioc/server/server.go:79","message":"loaded configs: [app.1.0.0 trace.1.0.0 log.1.0.0 vault.1.0.0 gin_webframework.1.0.0 datasource.1.0.0 grpc.1.0.0 http.1.0.0]"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:02:36+08:00","caller":"ioc/server/server.go:79","message":"loaded default: []"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:02:36+08:00","caller":"ioc/server/server.go:79","message":"loaded controllers: []"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:02:36+08:00","caller":"ioc/server/server.go:79","message":"loaded apis: [metric.v1 health.1.0.0 module_a.1.0.0 jsonrpc.1.0.0]"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:02:36+08:00","caller":"config/http/http.go:145","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8010"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"api handler","time":"2026-03-15T12:02:39+08:00","caller":"day07/example/main.go:76","message":"GetDbStats"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:14+08:00","caller":"ioc/server/server.go:109","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:03:14+08:00","caller":"config/http/http.go:153","message":"start graceful shutdown"} +{"level":"error","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:03:14+08:00","caller":"config/http/http.go:147","message":"http: Server closed"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:14+08:00","caller":"ioc/server/server.go:123","message":"http service stop complete"} +{"level":"warn","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"vault","time":"2026-03-15T12:03:17+08:00","caller":"config/vault/vault.go:113","message":"vault address is empty, skipping initialization"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"gin_webframework","time":"2026-03-15T12:03:17+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"datasource","time":"2026-03-15T12:03:17+08:00","caller":"config/datasource/grom.go:287","message":"using static credentials from config file"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"metric","time":"2026-03-15T12:03:17+08:00","caller":"metric/gin/metric.go:89","message":"Get the Metric using http://127.0.0.1:8010/metrics"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"health_check","time":"2026-03-15T12:03:17+08:00","caller":"health/gin/check.go:55","message":"Get the Health using http://127.0.0.1:8010/healthz"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"jsonrpc","time":"2026-03-15T12:03:17+08:00","caller":"config/jsonrpc/service.go:114","message":"no reigstry service"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:17+08:00","caller":"ioc/server/server.go:79","message":"loaded configs: [app.1.0.0 trace.1.0.0 log.1.0.0 vault.1.0.0 gin_webframework.1.0.0 datasource.1.0.0 grpc.1.0.0 http.1.0.0]"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:17+08:00","caller":"ioc/server/server.go:79","message":"loaded default: []"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:17+08:00","caller":"ioc/server/server.go:79","message":"loaded controllers: []"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:17+08:00","caller":"ioc/server/server.go:79","message":"loaded apis: [metric.v1 health.1.0.0 module_a.1.0.0 jsonrpc.1.0.0]"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:03:17+08:00","caller":"config/http/http.go:145","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8010"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","time":"2026-03-15T12:03:20+08:00","caller":"day07/example/main.go:76","message":"GetDbStats"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:54+08:00","caller":"ioc/server/server.go:109","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:03:54+08:00","caller":"config/http/http.go:153","message":"start graceful shutdown"} +{"level":"error","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:03:54+08:00","caller":"config/http/http.go:147","message":"http: Server closed"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:54+08:00","caller":"ioc/server/server.go:123","message":"http service stop complete"} +{"level":"warn","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"vault","time":"2026-03-15T12:03:54+08:00","caller":"config/vault/vault.go:113","message":"vault address is empty, skipping initialization"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"gin_webframework","time":"2026-03-15T12:03:54+08:00","caller":"config/gin/framework.go:41","message":"enable gin recovery"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"datasource","time":"2026-03-15T12:03:54+08:00","caller":"config/datasource/grom.go:287","message":"using static credentials from config file"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"metric","time":"2026-03-15T12:03:54+08:00","caller":"metric/gin/metric.go:89","message":"Get the Metric using http://127.0.0.1:8010/metrics"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"health_check","time":"2026-03-15T12:03:54+08:00","caller":"health/gin/check.go:55","message":"Get the Health using http://127.0.0.1:8010/healthz"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"jsonrpc","time":"2026-03-15T12:03:54+08:00","caller":"config/jsonrpc/service.go:114","message":"no reigstry service"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:54+08:00","caller":"ioc/server/server.go:79","message":"loaded configs: [app.1.0.0 trace.1.0.0 log.1.0.0 vault.1.0.0 gin_webframework.1.0.0 datasource.1.0.0 grpc.1.0.0 http.1.0.0]"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:54+08:00","caller":"ioc/server/server.go:79","message":"loaded default: []"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:54+08:00","caller":"ioc/server/server.go:79","message":"loaded controllers: []"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:03:54+08:00","caller":"ioc/server/server.go:79","message":"loaded apis: [metric.v1 health.1.0.0 module_a.1.0.0 jsonrpc.1.0.0]"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:03:54+08:00","caller":"config/http/http.go:145","message":"HTTP服务启动成功, 监听地址: 127.0.0.1:8010"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"api handler","time":"2026-03-15T12:03:57+08:00","caller":"day07/example/main.go:76","message":"GetDbStats"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:04:42+08:00","caller":"ioc/server/server.go:109","message":"receive signal 'interrupt', start graceful shutdown"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:04:42+08:00","caller":"config/http/http.go:153","message":"start graceful shutdown"} +{"level":"error","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"http","time":"2026-03-15T12:04:42+08:00","caller":"config/http/http.go:147","message":"http: Server closed"} +{"level":"info","group":"default","app":"mcube_app","hostname":"oldfishmpb-9.local","logger":"server","time":"2026-03-15T12:04:42+08:00","caller":"ioc/server/server.go:123","message":"http service stop complete"} diff --git a/day07/example/main.go b/day07/example/main.go index d28e210..6e532ed 100644 --- a/day07/example/main.go +++ b/day07/example/main.go @@ -1,20 +1,24 @@ package main import ( - "context" "net/http" "github.com/gin-gonic/gin" "github.com/infraboard/mcube/v2/ioc" "github.com/infraboard/mcube/v2/ioc/config/datasource" ioc_gin "github.com/infraboard/mcube/v2/ioc/config/gin" - "github.com/infraboard/mcube/v2/ioc/server" + + "github.com/infraboard/mcube/v2/ioc/server/cmd" + "gorm.io/gorm" // 开启Health健康检查 _ "github.com/infraboard/mcube/v2/ioc/apps/health/gin" // 开启Metric _ "github.com/infraboard/mcube/v2/ioc/apps/metric/gin" + + // 日志 + "github.com/infraboard/mcube/v2/ioc/config/log" ) func main() { @@ -23,14 +27,20 @@ func main() { // 开启配置文件读取配置 // server 是一个特殊的对象,在ioc 提供的 服务器 - server.DefaultConfig.ConfigFile.Enabled = true - server.DefaultConfig.ConfigFile.Paths = []string{"etc/application.toml"} + // server.DefaultConfig.ConfigFile.Enabled = true + // server.DefaultConfig.ConfigFile.Paths = []string{"etc/application.toml"} + + // // 启动应用 + // err := server.Run(context.Background()) + // if err != nil { + // panic(err) + // } + + // 基于CLI启动 + cmd.Start() + // 为程序添加子命令 + // cmd.Root.AddCommand() - // 启动应用 - err := server.Run(context.Background()) - if err != nil { - panic(err) - } } type ApiHandler struct { @@ -62,7 +72,10 @@ func (h *ApiHandler) Init() error { // 业务功能 func (h *ApiHandler) GetDbStats(ctx *gin.Context) { + // 使用L() 获取日志对象, 进行日志记录 + log.Sub("api handler").Info().Msg("GetDbStats") db, _ := h.db.DB() + ctx.JSON(http.StatusOK, gin.H{ "data": db.Stats(), }) diff --git a/day07/ioc.drawio b/day07/ioc.drawio new file mode 100644 index 0000000..fcb1d99 --- /dev/null +++ b/day07/ioc.drawio @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/day07/log/README.md b/day07/log/README.md new file mode 100644 index 0000000..34dc9e0 --- /dev/null +++ b/day07/log/README.md @@ -0,0 +1,3 @@ +# 程序日志 + +https://www.mcube.top/guide/config/log.html \ No newline at end of file