- commit
- b80b790
- parent
- c75173f
- author
- Antonio Mika
- date
- 2025-02-27 09:36:10 -0500 EST
Add more detail logging attributes
23 files changed,
+49,
-40
+1,
-1
1@@ -779,7 +779,7 @@ func StartApiServer() {
2 panic("must provide PICO_SECRET environment variable")
3 }
4
5- logger := shared.CreateLogger("auth")
6+ logger := shared.CreateLogger("auth-web")
7
8 cfg.Logger = logger
9
+1,
-1
1@@ -276,7 +276,7 @@ func mkpath(path string) string {
2 }
3
4 func setupTest() *shared.ApiConfig {
5- logger := shared.CreateLogger("auth")
6+ logger := shared.CreateLogger("auth-test")
7 cfg := &shared.ConfigSite{
8 Issuer: "auth.pico.test",
9 Domain: "http://0.0.0.0:3000",
+1,
-1
1@@ -9,7 +9,7 @@ import (
2 )
3
4 func main() {
5- cfg := feeds.NewConfigSite()
6+ cfg := feeds.NewConfigSite("feeds-fetch")
7 dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 defer dbh.Close()
9 fetcher := feeds.NewFetcher(dbh, cfg)
+1,
-1
1@@ -13,7 +13,7 @@ func main() {
2 minioUser := utils.GetEnv("MINIO_ROOT_USER", "")
3 minioPass := utils.GetEnv("MINIO_ROOT_PASSWORD", "")
4 dbURL := utils.GetEnv("DATABASE_URL", "")
5- logger := shared.CreateLogger("pgs")
6+ logger := shared.CreateLogger("pgs-ssh")
7 dbpool, err := pgsdb.NewDB(dbURL, logger)
8 if err != nil {
9 panic(err)
+1,
-1
1@@ -13,7 +13,7 @@ func main() {
2 minioUser := utils.GetEnv("MINIO_ROOT_USER", "")
3 minioPass := utils.GetEnv("MINIO_ROOT_PASSWORD", "")
4 dbURL := utils.GetEnv("DATABASE_URL", "")
5- logger := shared.CreateLogger("pgs")
6+ logger := shared.CreateLogger("pgs-web")
7 dbpool, err := pgsdb.NewDB(dbURL, logger)
8 if err != nil {
9 panic(err)
1@@ -76,7 +76,7 @@ func images(logger *slog.Logger, dbh db.DB, st storage.StorageServe, bucket sst.
2 }
3
4 func main() {
5- cfg := prose.NewConfigSite()
6+ cfg := prose.NewConfigSite("prose-imgs-migrate")
7 logger := cfg.Logger
8 picoDb := postgres.NewDB(cfg.DbURL, logger)
9 st, err := storage.NewStorageMinio(logger, cfg.MinioURL, cfg.MinioUser, cfg.MinioPass)
1@@ -18,7 +18,7 @@ func bail(err error) {
2 }
3
4 func main() {
5- cfg := prose.NewConfigSite()
6+ cfg := prose.NewConfigSite("prose-rm-old-buckets")
7 logger := cfg.Logger
8 picoDb := postgres.NewDB(cfg.DbURL, logger)
9 endpoint, err := url.Parse(cfg.MinioURL)
+1,
-1
1@@ -123,7 +123,7 @@ func createStaticRoutes() []shared.Route {
2 }
3
4 func StartApiServer() {
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("feeds-web")
7 db := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 defer db.Close()
9 logger := cfg.Logger
+2,
-2
1@@ -5,7 +5,7 @@ import (
2 "github.com/picosh/utils"
3 )
4
5-func NewConfigSite() *shared.ConfigSite {
6+func NewConfigSite(service string) *shared.ConfigSite {
7 debug := utils.GetEnv("FEEDS_DEBUG", "0")
8 domain := utils.GetEnv("FEEDS_DOMAIN", "feeds.pico.sh")
9 port := utils.GetEnv("FEEDS_WEB_PORT", "3000")
10@@ -31,6 +31,6 @@ func NewConfigSite() *shared.ConfigSite {
11 Space: "feeds",
12 AllowedExt: []string{".txt"},
13 HiddenPosts: []string{"_header.txt", "_readme.txt"},
14- Logger: shared.CreateLogger("feeds"),
15+ Logger: shared.CreateLogger(service),
16 }
17 }
+1,
-1
1@@ -65,7 +65,7 @@ func StartSshServer() {
2 host := utils.GetEnv("LISTS_HOST", "0.0.0.0")
3 port := utils.GetEnv("LISTS_SSH_PORT", "2222")
4 promPort := utils.GetEnv("LISTS_PROM_PORT", "9222")
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("feeds-ssh")
7 logger := cfg.Logger
8 dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 defer dbh.Close()
+1,
-1
1@@ -371,7 +371,7 @@ func createSubdomainRoutes(staticRoutes []shared.Route) []shared.Route {
2 }
3
4 func StartApiServer() {
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("pastes-web")
7 db := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 defer db.Close()
9 logger := cfg.Logger
+2,
-2
1@@ -5,7 +5,7 @@ import (
2 "github.com/picosh/utils"
3 )
4
5-func NewConfigSite() *shared.ConfigSite {
6+func NewConfigSite(service string) *shared.ConfigSite {
7 debug := utils.GetEnv("PASTES_DEBUG", "0")
8 domain := utils.GetEnv("PASTES_DOMAIN", "pastes.sh")
9 port := utils.GetEnv("PASTES_WEB_PORT", "3000")
10@@ -27,7 +27,7 @@ func NewConfigSite() *shared.ConfigSite {
11 MinioUser: minioUser,
12 MinioPass: minioPass,
13 Space: "pastes",
14- Logger: shared.CreateLogger("pastes"),
15+ Logger: shared.CreateLogger(service),
16 MaxAssetSize: int64(3 * utils.MB),
17 }
18 }
+1,
-1
1@@ -58,7 +58,7 @@ func StartSshServer() {
2 host := utils.GetEnv("PASTES_HOST", "0.0.0.0")
3 port := utils.GetEnv("PASTES_SSH_PORT", "2222")
4 promPort := utils.GetEnv("PASTES_PROM_PORT", "9222")
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("pastes-ssh")
7 logger := cfg.Logger
8 dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 defer dbh.Close()
+2,
-2
1@@ -5,12 +5,12 @@ import (
2 "github.com/picosh/utils"
3 )
4
5-func NewConfigSite() *shared.ConfigSite {
6+func NewConfigSite(service string) *shared.ConfigSite {
7 dbURL := utils.GetEnv("DATABASE_URL", "")
8
9 return &shared.ConfigSite{
10 DbURL: dbURL,
11 Space: "pico",
12- Logger: shared.CreateLogger("pico"),
13+ Logger: shared.CreateLogger(service),
14 }
15 }
+1,
-1
1@@ -67,7 +67,7 @@ func StartSshServer() {
2 host := utils.GetEnv("PICO_HOST", "0.0.0.0")
3 port := utils.GetEnv("PICO_SSH_PORT", "2222")
4 promPort := utils.GetEnv("PICO_PROM_PORT", "9222")
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("pico-ssh")
7 logger := cfg.Logger
8 dbpool := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 defer dbpool.Close()
+1,
-1
1@@ -411,7 +411,7 @@ func createMainRoutes(staticRoutes []shared.Route) []shared.Route {
2 }
3
4 func StartApiServer() {
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("pipe-web")
7 db := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 defer db.Close()
9 logger := cfg.Logger
+2,
-2
1@@ -5,7 +5,7 @@ import (
2 "github.com/picosh/utils"
3 )
4
5-func NewConfigSite() *shared.ConfigSite {
6+func NewConfigSite(service string) *shared.ConfigSite {
7 domain := utils.GetEnv("PIPE_DOMAIN", "pipe.pico.sh")
8 port := utils.GetEnv("PIPE_WEB_PORT", "3000")
9 dbURL := utils.GetEnv("DATABASE_URL", "")
10@@ -16,7 +16,7 @@ func NewConfigSite() *shared.ConfigSite {
11 Port: port,
12 Protocol: protocol,
13 DbURL: dbURL,
14- Logger: shared.CreateLogger("pipe"),
15+ Logger: shared.CreateLogger(service),
16 Space: "pipe",
17 }
18 }
+1,
-1
1@@ -24,7 +24,7 @@ func StartSshServer() {
2 port := utils.GetEnv("PIPE_SSH_PORT", "2222")
3 portOverride := utils.GetEnv("PIPE_SSH_PORT_OVERRIDE", port)
4 promPort := utils.GetEnv("PIPE_PROM_PORT", "9222")
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("pipe-ssh")
7 logger := cfg.Logger
8 dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 defer dbh.Close()
+1,
-1
1@@ -907,7 +907,7 @@ func createSubdomainRoutes(staticRoutes []shared.Route) []shared.Route {
2 }
3
4 func StartApiServer() {
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("prose-web")
7 dbpool := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 defer dbpool.Close()
9 logger := cfg.Logger
+2,
-2
1@@ -7,7 +7,7 @@ import (
2
3 var MAX_FILE_SIZE = 3 * utils.MB
4
5-func NewConfigSite() *shared.ConfigSite {
6+func NewConfigSite(service string) *shared.ConfigSite {
7 debug := utils.GetEnv("PROSE_DEBUG", "0")
8 domain := utils.GetEnv("PROSE_DOMAIN", "prose.sh")
9 port := utils.GetEnv("PROSE_WEB_PORT", "3000")
10@@ -42,7 +42,7 @@ func NewConfigSite() *shared.ConfigSite {
11 ".ico",
12 },
13 HiddenPosts: []string{"_readme.md", "_styles.css", "_footer.md", "_404.md"},
14- Logger: shared.CreateLogger("prose"),
15+ Logger: shared.CreateLogger(service),
16 MaxSize: maxSize,
17 MaxAssetSize: maxImgSize,
18 }
+1,
-1
1@@ -66,7 +66,7 @@ func StartSshServer() {
2 host := utils.GetEnv("PROSE_HOST", "0.0.0.0")
3 port := utils.GetEnv("PROSE_SSH_PORT", "2222")
4 promPort := utils.GetEnv("PROSE_PROM_PORT", "9222")
5- cfg := NewConfigSite()
6+ cfg := NewConfigSite("prose-ssh")
7 logger := cfg.Logger
8 dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 defer dbh.Close()
1@@ -273,25 +273,34 @@ func (c *ConfigSite) AssetURL(username, projectName, fpath string) string {
2 }
3
4 func CreateLogger(space string) *slog.Logger {
5- opts := &slog.HandlerOptions{
6- AddSource: true,
7- Level: slog.LevelInfo,
8- }
9- log := slog.New(
10- slog.NewTextHandler(os.Stdout, opts),
11- )
12-
13- newLogger := log
14+ logger := slog.New(
15+ slog.NewTextHandler(
16+ os.Stdout,
17+ &slog.HandlerOptions{
18+ AddSource: true,
19+ Level: slog.LevelInfo,
20+ },
21+ ),
22+ ).With("service")
23
24 if strings.ToLower(utils.GetEnv("PICO_PIPE_ENABLED", "true")) == "true" {
25 conn := NewPicoPipeClient()
26- newLogger = pipeLogger.RegisterReconnectLogger(context.Background(), log, conn, 100, 10*time.Millisecond)
27+ logger = pipeLogger.RegisterReconnectLogger(context.Background(), logger, conn, 100, 10*time.Millisecond)
28+ }
29+
30+ hostname, err := os.Hostname()
31+ if err == nil && hostname != "" {
32+ logger = logger.With("hostname", hostname)
33+ }
34+
35+ nodename := os.Getenv("NODE_NAME")
36+ if nodename != "" {
37+ logger = logger.With("nodename", nodename)
38 }
39
40- defaultLogger := newLogger.With("service", space)
41- slog.SetDefault(defaultLogger)
42+ slog.SetDefault(logger)
43
44- return defaultLogger
45+ return logger
46 }
47
48 func LoggerWithUser(logger *slog.Logger, user *db.User) *slog.Logger {
+1,
-1
1@@ -31,7 +31,7 @@ func LogMiddleware(defaultLogger *slog.Logger, db FindUserInterface) wish.Middle
2 user, err := db.FindUserByPubkey(s.Permissions().Extensions["pubkey"])
3 if err == nil && user != nil {
4 logger = shared.LoggerWithUser(logger, user).With(
5- "ip", s.RemoteAddr(),
6+ "ip", s.RemoteAddr().String(),
7 )
8 s.Context().SetValue(ctxUserKey{}, user)
9 }