Updated:

1 minute read

개요

  • 1.21부터 지원


예제

  • 코드
    •  package main
              
       import (
       	"log/slog"
       	"os"
       )
              
       func main() {
       	println("1 ---------------------------------------------")
       	{
       		slog.Debug("message", "key1", 1, "key2", 2)
       		slog.Error("message", "key1", 1, "key2", 2)
       		slog.Warn("message", "key1", 1, "key2", 2)
       		slog.Info("message", "key1", 1, "key2", 2)
       		slog.Info("usage", "cpu", 10, slog.Group("disk", "/", 50, "/home", 30))
       	}
              
       	println("\n2 ---------------------------------------------")
       	{
       		slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, nil)))
       		slog.Debug("message", "key1", 1, "key2", 2)
       		slog.Error("message", "key1", 1, "key2", 2)
       		slog.Warn("message", "key1", 1, "key2", 2)
       		slog.Info("message", "key1", 1, "key2", 2)
       		slog.Info("usage", "cpu", 10, slog.Group("disk", "/", 50, "/home", 30))
       	}
              
       	println("\n3 ---------------------------------------------")
       	{
       		slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil)))
       		slog.Debug("message", "key1", 1, "key2", 2)
       		slog.Error("message", "key1", 1, "key2", 2)
       		slog.Warn("message", "key1", 1, "key2", 2)
       		slog.Info("message", "key1", 1, "key2", 2)
       		slog.Info("usage", "cpu", 10, slog.Group("disk", "/", 50, "/home", 30))
       	}
              
       	println("\n4 ---------------------------------------------")
       	{
       		slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug})))
       		slog.Debug("message", "key1", 1, "key2", 2)
       		slog.Error("message", "key1", 1, "key2", 2)
       		slog.Warn("message", "key1", 1, "key2", 2)
       		slog.Info("message", "key1", 1, "key2", 2)
       		slog.Info("usage", "cpu", 10, slog.Group("disk", "/", 50, "/home", 30))
       	}
       }
      
  • 실행 결과
    •  1 ---------------------------------------------
       2023/09/12 15:28:04 ERROR message key1=1 key2=2
       2023/09/12 15:28:04 WARN message key1=1 key2=2
       2023/09/12 15:28:04 INFO message key1=1 key2=2
       2023/09/12 15:28:04 INFO usage cpu=10 disk./=50 disk./home=30
              
       2 ---------------------------------------------
       time=2023-09-12T15:28:04.582+09:00 level=ERROR msg=message key1=1 key2=2
       time=2023-09-12T15:28:04.582+09:00 level=WARN msg=message key1=1 key2=2
       time=2023-09-12T15:28:04.582+09:00 level=INFO msg=message key1=1 key2=2
       time=2023-09-12T15:28:04.582+09:00 level=INFO msg=usage cpu=10 disk./=50 disk./home=30
              
       3 ---------------------------------------------
       {"time":"2023-09-12T15:28:04.582835078+09:00","level":"ERROR","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582838078+09:00","level":"WARN","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582839816+09:00","level":"INFO","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582845535+09:00","level":"INFO","msg":"usage","cpu":10,"disk":{"/":50,"/home":30}}
              
       4 ---------------------------------------------
       {"time":"2023-09-12T15:28:04.582849353+09:00","level":"DEBUG","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582853342+09:00","level":"ERROR","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582855334+09:00","level":"WARN","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582857208+09:00","level":"INFO","msg":"message","key1":1,"key2":2}
       {"time":"2023-09-12T15:28:04.582859409+09:00","level":"INFO","msg":"usage","cpu":10,"disk":{"/":50,"/home":30}}