Go Fiber 한글 공식 문서
  • 🙇‍♀️안녕하세요
  • 🏠Home
    • 👋Welcome
    • 📁API
      • 📦Fiber
      • 🚀App
      • 🧠Ctx
      • 📋Constants
      • 🌎Client
      • 📃Log
      • 🧬Middleware
        • Adaptor
        • BasicAuth
        • Cache
        • Compress
        • CORS
        • CSRF
        • EarlyData
        • Encrypt Cookie
        • EnvVar
        • ETag
        • ExpVar
        • Favicon
        • FileSystem
        • Health Check
        • Helmet
        • Idempotency
        • Keyauth
        • Limiter
        • Logger
        • Monitor
        • Pprof
        • Proxy
        • Recover
        • Redirect
        • RequestID
        • Rewrite
        • Session
        • Skip
        • Timeout
    • 📁Guide
      • 🔌Routing
      • 🎭Grouping
      • 📝Templates
      • 🐛Error Handling
      • 🔎Validation
      • 🎣Hooks
      • ⚡Make Fiber Faster
    • 📁Extra
      • 🤔FAQ
      • 📊Benchmarks
  • 🧩Extra
    • 🧬Contrip
      • 👋Welcome
      • Casbin
      • Fgprof
      • Fiberi18n
      • Fibernewrelic
      • Fibersentry
      • Fiberzap
      • Fiberzerolog
      • JWT
      • LoadShed
      • Opafiber
      • Otelfiber
        • Example
      • Paseto
      • README
      • Swagger
      • Websocket
    • 📦Storage
      • 👋Welcome
      • ArangoDB
      • Azure Blob
      • Badger
      • Bbolt
      • Coherence
      • Couchbase
      • DynamoDB
      • Etcd
      • Memcache
      • Memory
      • Minio
      • MongoDB
      • MSSQL
      • MySQL
      • Nats
      • Pebble
      • Postgres
      • Redis
      • Ristretto
      • Rueidis
      • S3
      • ScyllaDb
      • SQLite3
    • 📃Template
      • 👋Welcome
      • Ace
      • Amber
      • Django
      • Handlebars
      • HTML
        • Golang Templates Cheatsheet
      • Jet
      • Mustache
      • Pug
      • Slim
Powered by GitBook
On this page
  • Log levels
  • Custom log
  • Print log
  • Global log
  • Set Level
  • Set output
  • Bind context
  1. Home
  2. API

Log


로그를 사용하면 프로그램 동작을 관찰하고, 문제를 진단하거나 해당 알람을 구성할 수 있습니다.

그리고 잘 구조화된 로그를 정의하면 검색 효율성을 높이고 문제 처리를 용이하게 할 수 있습니다.

Fiber는 표준 출력에 로그를 출력하는 기본 방법을 제공합니다.

또한 log.Info, log.Errorf, log.Warnw 등의 여러 전역 함수를 제공합니다.

Log levels

const (
  LevelTrace Level = iota
  LevelDebug
  LevelInfo
  LevelWarn
  LevelError
  LevelFatal
  LevelPanic
)

Custom log

Fiber는 다양한 로그 라이브러리를 적용할 수 있는 AllLogger 인터페이스를 제공합니다.

type CommonLogger interface {
  Logger
  FormatLogger
  WithLogger
}

type AllLogger interface {
  CommonLogger
  ControlLogger
  WithLogger
}

Print log

Fatal 레벨을 호출하는 방법은 로그를 출력한 후 프로그램 실행을 중단하므로 주의해서 사용하세요.

다양한 레벨의 로그를 직접 출력하면 messageKey에 입력되며, 기본값은 msg입니다.

log.Info("Hello, World!")
log.Debug("Are you OK?")
log.Info("42 is the answer to life, the universe, and everything")
log.Warn("We are under attack!")
log.Error("Houston, we have a problem.")
log.Fatal("So Long, and Thanks for All the Fislog.")
log.Panic("The system is down.")

다양한 레벨의 로그를 포맷팅하여 출력하며, 모든 메소드는 f로 끝납니다.

log.Debugf("Hello %s", "boy")
log.Infof("%d is the answer to life, the universe, and everything", 233) 
log.Warnf("We are under attack %s!", "boss")
log.Errorf("%s, we have a problem.", "Master Shifu")
log.Fatalf("So Long, and Thanks for All the %s.", "banana")

키와 값을 가진 메시지를 출력하거나, 키와 값이 쌍을 이루지 않으면 KEYVALS UNPAIRED를 출력합니다.

log.Debugw("", "Hello", "boy")
log.Infow("", "number", 233)
log.Warnw("", "job", "boss")
log.Errorw("", "name", "Master Shifu") 
log.Fatalw("", "fruit", "banana")

Global log

프로젝트에서 언제든지 전역에서 출력할 수 있는 간단한 로그 함수만 사용하려는 경우 전역 로그를 제공합니다.

import "github.com/gofiber/fiber/v3/log"

log.Info("info")
log.Warn("warn")

위의 코드는 기본 log.DefaultLogger 표준 출력을 사용합니다.

contrib 아래에 이미 구현된 어댑테이션을 찾거나, 사용자가 직접 구현한 Logger를 사용하고 log.SetLogger를 사용하여 전역 로그 로거를 설정할 수도 있습니다.

import (
  "log"
  fiberlog "github.com/gofiber/fiber/v3/log"
)

var _ log.AllLogger = (*customLogger)(nil)

type customLogger struct {
  stdlog *log.Logger
}

// ...

// inject your custom logger
fiberlog.SetLogger(customLogger)

Set Level

log.SetLevel은 로그가 출력되지 않는 로그 레벨 아래의 로그 레벨을 설정합니다.

기본 로거는 LevelTrace입니다.

이 메서드는 동시에 안전하지 않습니다.

import "github.com/gofiber/fiber/v3/log"

log.SetLevel(log.LevelInfo)

Set output

log.SetOutput은 로거의 출력 대상을 설정합니다. 기본 로거는 콘솔에 로그를 출력합니다.

var logger AllLogger = &defaultLogger{
  stdlog: log.New(os.Stderr, "", log.LstdFlags|log.Lshortfile|log.Lmicroseconds),
  depth:  4,
}

출력 대상을 파일로 설정합니다.

// Output to ./test.log file
f, err := os.OpenFile("test.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
  return 
}
log.SetOutput(f)

출력 대상을 콘솔과 파일로 설정합니다.

// Output to ./test.log file
file, _:= os.OpenFile("test.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
iw := io.MultiWriter(os.Stdout, file)
log.SetOutput(iw)

Bind context

컨텍스트를 설정하면 다음 메서드를 사용하여 지정된 컨텍스트에 바인딩된 CommonLogger 인스턴스를 반환합니다.

commonLogger := log.WithContext(ctx)
commonLogger.Info("info")
PreviousClientNextMiddleware

Last updated 1 year ago

🏠
📁
📃