Commit 0165c183 authored by Felix Lange's avatar Felix Lange

ethlog: use Godoc for code examples in documentation

This ensures that examples will actually compile.
parent e0f93c74
package ethlog
import "os"
func ExampleLogger() {
logger := NewLogger("TAG")
logger.Infoln("so awesome") // prints [TAG] so awesome
logger.Infof("this %q is raw", "coin") // prints [TAG] this "coin" is raw
}
func ExampleLogSystem() {
filename := "test.log"
file, _ := os.OpenFile(filename, os.O_RDWR|os.O_CREATE, os.ModePerm)
fileLog := NewStdLogSystem(file, 0, WarnLevel)
AddLogSystem(fileLog)
stdoutLog := NewStdLogSystem(os.Stdout, 0, WarnLevel)
AddLogSystem(stdoutLog)
NewLogger("TAG").Warnln("reactor meltdown") // writes to both logs
}
/* /*
Package ethlog implements a multi-output leveled logger. Package ethlog implements a multi-output leveled logger.
Features Other packages use tagged logger to send log messages to shared
(process-wide) logging engine. The shared logging engine dispatches to
multiple log systems. The log level can be set separately per log
system.
Other packages use tagged logger to send log messages to shared (process-wide) logging engine. Logging is asynchrounous and does not block the caller. Message
The shared logging engine dispatches to multiple log systems.
The log level can be set separately per log system.
Logging is asynchrounous and does not block the main thread. Message
formatting is performed by the caller goroutine to avoid incorrect formatting is performed by the caller goroutine to avoid incorrect
logging of mutable state. logging of mutable state.
Usage
The Logger type provides named Printf and Println style methods for
all loglevels. Each ethereum component should have its own logger with
a unique prefix.
logger.Infoln("this is info") # > [TAG] This is info
logger.Infof("this %v is info", object) # > [TAG] This object is info
ethlog also provides constructors for that wrap io.Writers into a
standard logger with a settable level:
filename := "test.log"
file, _ := os.OpenFile(filename, os.O_RDWR|os.O_CREATE, os.ModePerm)
fileLogSystem := NewStdLogSystem(file, 0, WarnLevel)
AddLogSystem(fileLogSystem)
stdOutLogSystem := NewStdLogSystem(os.Stdout, 0, WarnLevel)
AddLogSystem(stdOutLogSystem)
*/ */
package ethlog package ethlog
...@@ -160,8 +139,9 @@ func AddLogSystem(logSystem LogSystem) { ...@@ -160,8 +139,9 @@ func AddLogSystem(logSystem LogSystem) {
mutex.Unlock() mutex.Unlock()
} }
// A Logger prints messages prefixed by a given tag. // A Logger prints messages prefixed by a given tag. It provides named
// You should create one with a unique tag for each high-level component. // Printf and Println style methods for all loglevels. Each ethereum
// component should have its own logger with a unique prefix.
type Logger struct { type Logger struct {
tag string tag string
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment