...

パッケージ log

概要 ▾

log パッケージは,シンプルなログ出力パッケージを実装します。 型,ロガー,出力の書式を指定するメソッドがあります。 '標準' ロガーがあり, Print[f|ln], Fatal[f|ln], Panic[f|ln] というヘルパー関数を使えば,自分でロガーを用意するより簡単に使うことができます。 この標準ロガーは標準エラーに書き込み,ログメッセージとともに日付と時間を出力します。

各ログメッセージは別の行に出力されます。 つまり,メッセージが改行で終わらない場合,ロガーが改行を追加します。 Fatal 関数はログメッセージを書き出した後に os.Exit(1) を呼び出します。 Panic 関数はログメッセージを書き出した後にパニックします。

定数

これらのフラグは,ロガーから出力される各ログにどのテキストをプレフィックスとして頭につけるかを決めます。 ビットを or で合わせることにより,出力される文字をコントロールできます。 出力される順番やフォーマットをコントロールすることはできません。

Llongfile あるいは Lshortfile が指定されている時に限り,プレフィックスのあとにコロンがつきます。 たとえば, Ldate | Ltime (あるいは LstdFlags) とすると,

2009/01/23 01:23:23 message

と出力され, Ldate | Ltime | Lmicroseconds | Llongfile とすれば,

2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message

と出力されます。

const (
    Ldate         = 1 << iota     // ローカルタイムゾーンでの日付: 2009/01/23
    Ltime                         // ローカルタイムゾーンでの時刻: 01:23:23
    Lmicroseconds                 // マイクロ秒: 01:23:23.123123.  Ltime も設定されていることを仮定しています。
    Llongfile                     // フルファイル名と行番号: /a/b/c/d.go:23
    Lshortfile                    // ファイル名と行番号: d.go:23. Llongfile を上書きします。
    LUTC                          // Ldate または Ltime が設定されている場合,ローカルタイムゾーンではなく UTC を使います。
    LstdFlags     = Ldate | Ltime // 標準ロガーの初期値
)

func Fatal

func Fatal(v ...interface{})

Fatal は, Print() を呼び出した後, os.Exit(1) を呼び出します。

func Fatalf

func Fatalf(format string, v ...interface{})

Fatalf は, Printf() を呼び出した後, os.Exit(1) を呼び出します。

func Fatalln

func Fatalln(v ...interface{})

Fatalln は, Println() を呼び出した後, os.Exit(1) を呼び出します。

func Flags

func Flags() int

Flags は標準ロガーの出力フラグを返します。

func Output 1.5

func Output(calldepth int, s string) error

Output は,ログを出力します。 s は出力されるテキストで,ロガーの flag で指定されるプレフィックスの後に書き込まれます。 s の最後の文字が改行でなければ,改行が追加されます。 calldepth は,PC を回復し,一般性を提供するためにあります。 現状,すべての用意されたメソッドでは 2 になっています。

calldepth は,Llongfile あるいは Lshortfile が設定されている場合,呼び出しフレームをいくつスキップして,ファイル名と行番号を出力するかを表します。 1 を設定すると,Output の呼び出し元の詳細が出力されます。

func Panic

func Panic(v ...interface{})

Panic は, Print() を呼び出した後, panic() を呼び出します。

func Panicf

func Panicf(format string, v ...interface{})

Panicf は, Printf() を呼び出した後, panic() を呼び出します。

func Panicln

func Panicln(v ...interface{})

Panicln は, Println() を呼び出した後, panic() を呼び出します。

func Prefix

func Prefix() string

Prefix は,標準ロガーの出力プレフィックスを返します。

func Print

func Print(v ...interface{})

Print calls Output to print to the standard logger. 引数は fmt.Printf と同様の振る舞いをします。

func Printf

func Printf(format string, v ...interface{})

Printf は,Output を呼び出して標準ロガーに書き出します。 引数は fmt.Printf と同様に振る舞います。

func Println

func Println(v ...interface{})

Println は,Output を呼び出して標準ロガーに書き出します。 引数は fmt.Println と同様に振る舞います。

func SetFlags

func SetFlags(flag int)

SetFlags は,標準ロガーの出力フラグを設定します。

func SetOutput

func SetOutput(w io.Writer)

SetOutput は,標準ロガーの出力先を設定します。

func SetPrefix

func SetPrefix(prefix string)

SetPrefix は,標準ロガーの出力プレフィックスを設定します。

func Writer 1.13

func Writer() io.Writer

Writer は,標準ロガーの出力先を返します。

type Logger

Logger は,io.Writer にログを出力します。 ログを書き出すごとに,Writer の Write メソッドを1 回呼び出します。 複数のゴルーチンから同時に用いることができ, Writer へ順にアクセスすることが保証されています。

type Logger struct {
    // エクスポートされていないフィールドがあります
}

コード:

var (
    buf    bytes.Buffer
    logger = log.New(&buf, "logger: ", log.Lshortfile)
)

logger.Print("Hello, log file!")

fmt.Print(&buf)

出力:

logger: example_test.go:19: Hello, log file!

func New

func New(out io.Writer, prefix string, flag int) *Logger

New は新しい Logger を作成します。 out にログデータを書き込みます。 prefix はログの毎行の頭に書き込まれます。 flag でログのプロパティを設定します。

func (*Logger) Fatal

func (l *Logger) Fatal(v ...interface{})

Fatal は, l.Print() を呼び出した後, os.Exit(1) を呼び出します。

func (*Logger) Fatalf

func (l *Logger) Fatalf(format string, v ...interface{})

Fatalf は, l.Printf() を呼び出した後, os.Exit(1) を呼び出します。

func (*Logger) Fatalln

func (l *Logger) Fatalln(v ...interface{})

Fatalln は, l.Println() を呼び出した後, os.Exit(1) を呼び出します。

func (*Logger) Flags

func (l *Logger) Flags() int

Flags はロガーの出力フラグを返します。

func (*Logger) Output

func (l *Logger) Output(calldepth int, s string) error

Output は,ログを出力します。 s は出力されるテキストで,ロガーの flag で指定されるプレフィックスの後に書き込まれます。 s の最後の文字が改行でなければ,改行が追加されます。 calldepth は,PC を回復し,一般性を提供するためにあります。 現状,すべての用意されたメソッドでは 2 になっています。

コード:

var (
    buf    bytes.Buffer
    logger = log.New(&buf, "INFO: ", log.Lshortfile)

    infof = func(info string) {
        logger.Output(2, info)
    }
)

infof("Hello world")

fmt.Print(&buf)

出力:

INFO: example_test.go:36: Hello world

func (*Logger) Panic

func (l *Logger) Panic(v ...interface{})

Panic は, l.Print() を呼び出した後, panic() を呼び出します。

func (*Logger) Panicf

func (l *Logger) Panicf(format string, v ...interface{})

Panicf は, l.Printf() を呼び出した後, panic() を呼び出します。

func (*Logger) Panicln

func (l *Logger) Panicln(v ...interface{})

Panicln は, l.Println() を呼び出した後, panic() を呼び出します。

func (*Logger) Prefix

func (l *Logger) Prefix() string

Prefix は,ロガーの出力プレフィックスを返します。

func (*Logger) Print

func (l *Logger) Print(v ...interface{})

Print は l.Output を呼び出しログを書き込みます。 引数は fmt.Printf と同様の振る舞いをします。

func (*Logger) Printf

func (l *Logger) Printf(format string, v ...interface{})

Printf は l.Output を呼び出しログを書き込みます。 引数は fmt.Printf と同様の振る舞いをします。

func (*Logger) Println

func (l *Logger) Println(v ...interface{})

Println は l.Output を呼び出しログを書き込みます。 引数は fmt.Println と同様の振る舞いをします。

func (*Logger) SetFlags

func (l *Logger) SetFlags(flag int)

SetFlags は,ロガーの出力フラグを設定します。

func (*Logger) SetOutput 1.5

func (l *Logger) SetOutput(w io.Writer)

SetOutput は,ロガーの出力先を設定します。

func (*Logger) SetPrefix

func (l *Logger) SetPrefix(prefix string)

SetPrefix は,ロガーの出力プレフィックスを設定します。

func (*Logger) Writer 1.12

func (l *Logger) Writer() io.Writer

Writer は,ロガーの出力先を返します。

サブディレクトリ

名前 概要
..
syslog syslog パッケージはシステムログサービスへのシンプルなインターフェースを提供します。