log

package module
v0.0.0-...-e183637 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2014 License: BSD-2-Clause Imports: 7 Imported by: 1

README

log

wercker status 提供日志输出支持.

The documentation is available at gowalker.org.

Support

  • 并发安全
  • 日志级别
  • 设定输出级别
  • 多种输出规则
  • io.WriteCloser 接口
  • 支持日志分割 RotateWriter 接口
  • 友好输出格式易于分析
  • Loggers, Multi-Logger 设计思路来自 https://github.com/uniqush/log.
  • 内建 File, Smtp 实现

Import

import "github.com/typepress/log"

Usage

package main

import (
	"bytes"
	"fmt"
	"github.com/typepress/log"
)

func main() {
	w := bytes.NewBuffer(nil)
	m := log.Multi(
		log.New(
			w,        // io.Writer
			"prefix", // prefix string
			0,        // flag, 0 means none auto prefix.
		))

	l := log.New(w, "",
		log.LstdFlags|log.Lshortfile,
		log.Lmicroseconds,
	)

	m.Join(l)

	m.Info("info")
	m.Notify("Notify")

	l.Output(1, "Output")

	l.SetPrintLevel(log.LAlert)
	l.Print("SetPrintLevel: LAlert")

	l = log.New(w, "ModeEqualReport",
		0,
		log.MODE_EQUAL, // equal mode
		log.LReport,    // set level
	)

	m.Join(l)

	m.Error("Error")
	m.Report("Report")

	fmt.Println(w.String())
}

output:

prefix [I] "info"
[I] 2014-02-18 17:30:27.154305 <hello.go:25> "info"
prefix [N] "Notify"
[N] 2014-02-18 17:30:27.156305 <hello.go:26> "Notify"
[Z] 2014-02-18 17:30:27.156305 <hello.go:28> "Output"
[A] 2014-02-18 17:30:27.156305 <hello.go:31> "SetPrintLevel: LAlert"
prefix [E] "Error"
[E] 2014-02-18 17:30:27.156305 <hello.go:38> "Error"
prefix [R] "Report"
[R] 2014-02-18 17:30:27.156305 <hello.go:39> "Report"
ModeEqualReport [R] "Report"

License

BSD-2-Clause

Documentation

Overview

logger for golang. few code fork go log.

Index

Constants

View Source
const (
	Ldate = 1 << iota
	Ltime
	Lmicroseconds
	Llongfile
	Lshortfile
	LstdFlags = Ldate | Ltime // default
)

auto flags constants for prefix. see also http://godoc.org/log#pkg-constants

View Source
const (
	LZero   = -iota // [Z], use only for Logger.Output.
	LFatal          // [F]
	LPanic          // [P]
	LAlert          // [A]
	LError          // [E]
	LReport         // [R]
	LNotify         // [N]
	LInfo           // [I], default
	LDebug          // [D]

)

flags constants for logger level.

View Source
const (
	MODE_EQUAL      = -iota - 100 // equal level mode
	MODE_RECOVER                  // recover panic and ignore
	MODE_NONE_NAME                // dont output builtin level name
	MODE_NONE_EOR                 // send []byte{} on Output.
	MODE_DONT_EXIT                // dont exec os.Exit when Fatal
	MODE_DONT_PANIC               // dont exec panic when Panic

)

flags constants for logger mode.

Variables

This section is empty.

Functions

func Rotate

func Rotate(w RotateWriter, sets RotateSets) io.Writer

Rotate wrapper RotateWriter, returns io.Writer. invoke RotateWriter.Rotate method by the time.

Types

type BaseLogger

type BaseLogger interface {
	LevelLogger
	Print(v ...interface{})
	Printf(format string, v ...interface{})
	// SetPrintLevel to binding level for Print/Printf
	SetPrintLevel(level int)

	/*
		Output writes the output for a logging event.
		if omit optionLevel, same to LZero, means always output.
	*/
	Output(calldepth int, s string, optionLevel ...int) error
}

All methods of BaseLogger auto send "\n".

type LevelLogger

type LevelLogger interface {
	Fatal(v ...interface{})
	Fatalf(format string, v ...interface{})
	Panic(v ...interface{})
	Panicf(format string, v ...interface{})
	Alert(v ...interface{})
	Alertf(format string, v ...interface{})
	Error(v ...interface{})
	Errorf(format string, v ...interface{})
	Report(v ...interface{})
	Reportf(format string, v ...interface{})
	Notify(v ...interface{})
	Notifyf(format string, v ...interface{})
	Info(v ...interface{})
	Infof(format string, v ...interface{})
	Debug(v ...interface{})
	Debugf(format string, v ...interface{})
}

level logger interface.

type Logger

type Logger interface {
	BaseLogger
	io.WriteCloser
}

func New

func New(writer io.Writer, prefix string, flags ...int) Logger

New returns Logger. if writer is nil, returns nil. flags The valid range includes all flags constants.

type Loggers

type Loggers interface {
	LevelLogger

	// Join logger to Loggers.
	Join(...Logger)
	Close()
}

Loggers interface for set of Logger.

func Multi

func Multi(loggers ...Logger) Loggers

Multi returns Loggers. Inspired by https://github.com/uniqush/log.

type RotateSets

type RotateSets struct {
	Size, Recodes, Minutes int
}

RotateSets for Rotate

type RotateWriter

type RotateWriter interface {
	io.Writer
	Rotate(begin, now time.Time)
}

RotateWriter interface for rotation logger.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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