logger

package module
v1.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2019 License: MIT Imports: 11 Imported by: 0

README

ロギングライブラリ

package main

import "github.com/ochipin/logger"
import "os"

func main() {
    log := logger.Log{
        Path:    "log/access.log",
        Lotate:  "log/%Y%m/access-%Y%m%d.log",
        Timing:  "00:00",
        Perm:    0644,
    }

    l, err := log.MakeLog(os.Stdout)
    if err != nil {
        panic(err)
    }

    // ログ情報の保存と出力
    l.Print("Hello World")
    l.Printf("%s %d", "Hello World", 200)

    // 保存されたログファイルをローテーションする
    log.Keeping()
}

logger.Logger インターフェース

Loggerインターフェースは、Print, Printfの2つのログ出力関数を所持するインターフェースである。 このインターフェースは、Log.MakeLog関数から生成される(後述)

logger.Log 構造体のパラメータ

パラメータ 説明
Path ログファイルの保存場所
Lotate ログローテーションがされた際に、移動する場所
Timing ログローテーションする時刻。時:分で指定する
Newline デフォルト false。true の場合、改行コードを削除する
Tabspace デフォルト false。true の場合、タブを空白に置き換える
Trim デフォルト false。true の場合、Trimを行う
Overwrite デフォルト false。true の場合、ログローテーション時に、すでにあるファイルに対して、上書きを実施。falseの場合は、追加書き込みを実施する。
Perm 保存するログのパーミッション

上記パラメータで、Lotateパラメータに関しては、以下のフォーマット指定子を使用することができる。

フォーマット指定子 説明
%Y YYYY
%m MM
%d DD
%w 週名
%h HH

ログローテーションは、Timingで指定された時刻に実施される。

log/%Y%m/access-%Y%m%d.log と指定した場合は、下記のようにログローテションされる。

2017/01/01 ---> log/201701/access-20170101.log
2017/01/02 ---> log/201701/access-20170102.log
2017/01/03 ---> log/201701/access-20170103.log

また、1週間単位でのログローテーションを実施する場合は、log/access-%w.logとする。

2017/01/01(Sun) ---> log/access-Sun.log
2017/01/02(Man) ---> log/access-Man.log
2017/01/03(Tue) ---> log/access-Tue.log
2017/01/04(Wed) ---> log/access-Wed.log
2017/01/05(Thu) ---> log/access-Thu.log
2017/01/06(Fri) ---> log/access-Fri.log
2017/01/07(Sat) ---> log/access-Sat.log
2017/01/08(Sun) ---> log/access-Sun.log <--- 上書き or 追加書き込み
                                             Overwrite のフラグにより挙動が異なる

logger.Log.MakeLog()

Loggerインターフェースを生成する関数。

logger.Log.Keeping()

保存されたログファイルのローテーションを実施する関数。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Log

type Log struct {
	Path      string // ログ保存パス
	Lotate    string // ログローテーションファイル名
	Timing    string // ログローテーションタイミング
	Newline   bool   // ログ保存時に、改行を含めるか否か
	Tabspace  bool   // ログ保存時に、タブを空白に置き換えるか
	Trim      bool   // ログ保存時に、Trimする
	Perm      int    // ログファイル作成時のパーミッション
	Overwrite bool   // ログローテーション時に、既にあるファイルに対して上書きする
	// contains filtered or unexported fields
}

Log 構造体は、ログ情報を取り扱う構造体

func (*Log) Initializer

func (l *Log) Initializer(out *os.File) error

Initializer : ログ管理構造体にセットされたパラメータが適切かチェックし、パラメータを初期化する

func (*Log) Keeping

func (l *Log) Keeping()

Keeping : ログファイルをローテーションする

func (*Log) MakeLog

func (l *Log) MakeLog(out *os.File) (Logger, error)

MakeLog : ログ管理構造体を初期化する

func (*Log) Print

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

Print : ログを出力する

func (*Log) Printf

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

Printf : ログを出力する

func (*Log) Println added in v1.3.1

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

Println : ログを出力する

func (*Log) Write

func (l *Log) Write(b []byte) (int, error)

Write : ログを出力する

type Logger

type Logger interface {
	Print(...interface{})
	Printf(string, ...interface{})
	Println(...interface{})
	Write([]byte) (int, error)
}

Logger : ログ管理インタフェース

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL