Update README.md

remotes/r/develop
Guoqiang Chen 8 years ago
parent 628e833ea7
commit 853264221f

@ -27,16 +27,20 @@ Usage
### Default log to console ### Default log to console
```go ```go
package main
import ( import (
"os"
"errors"
"github.com/subchen/go-log" "github.com/subchen/go-log"
) )
func main() { func main() {
log.Debug("Some Message ...") log.Debugf("app = %s", os.Args[0])
log.Error("error = %v", errors.New("some error")) log.Errorf("error = %v", errors.New("some error"))
// dynamic set level // dynamic set level
log.SetLevel(log.INFO) log.SetLevel(log.L_INFO)
log.Debug("cannot output debug message") log.Debug("cannot output debug message")
log.Info("can output info message") log.Info("can output info message")
@ -45,23 +49,17 @@ func main() {
### Output to file ### Output to file
```go You can call `SetWriter` to set a file writer into log.
import (
"github.com/subchen/go-log"
)
func main() { ```go
log.SetWriter(&log.FixedSizeFileWriter{ log.SetWriter(&log.FixedSizeFileWriter{
Name: "/tmp/test.log", Name: "/tmp/test.log",
MaxSize: 10 * 1024 * 1024, // 10m MaxSize: 10 * 1024 * 1024, // 10m
MaxCount: 10, MaxCount: 10,
}) })
log.Debug("x = %v", "123")
}
``` ```
### We have four writers for use ### We defined three writers for use
```go ```go
// Create log file if file size large than fixed size (10m) // Create log file if file size large than fixed size (10m)
@ -73,25 +71,28 @@ func main() {
} }
// Create log file every day. // Create log file every day.
// files: /tmp/test.log.2016-01-02 // files: /tmp/test.log.20160102
&log.DailyFileWriter{ &log.DailyFileWriter{
Name: "/tmp/test.log", Name: "/tmp/test.log",
MaxCount: 10,
} }
// Create log file every process. // Create log file every process.
// files: /tmp/test.log.20160102_150405 // files: /tmp/test.log.20160102_150405
&log.AlwaysNewFileWriter{ &log.AlwaysNewFileWriter{
Name: "/tmp/test.log", Name: "/tmp/test.log",
MaxCount: 10,
} }
// Output to multiple writes // Output to multiple writes
&log.CompositeWriters{ io.MultiWriter(
os.Stdout, os.Stdout,
&log.DailyFileWriter{ &log.DailyFileWriter{
Name: "/tmp/test.log", Name: "/tmp/test.log",
MaxCount: 10,
} }
//... //...
} )
``` ```
### New log instance ### New log instance
@ -106,13 +107,13 @@ func main() {
Name: "/tmp/test.log", Name: "/tmp/test.log",
}) })
logger.Debug("i = %d", 99) logger.Debugf("i = %d", 99)
} }
``` ```
### Output stack ### Output stack
You can use `log.Fatal(...)` to output full stack You can use `log.Fatal(...)` or `log.Fatalf(...)` to output full stack
``` ```
21:04:32.884 main FATAL logger_test.go:24 this is a fatal message 21:04:32.884 main FATAL logger_test.go:24 this is a fatal message
@ -128,11 +129,9 @@ You can use `log.Fatal(...)` to output full stack
2016-02-10 19:33:02.587 12345 main 987 INFO fixed_size_file_writer_test.go:16 message ... 2016-02-10 19:33:02.587 12345 main 987 INFO fixed_size_file_writer_test.go:16 message ...
``` ```
* `log.SetTimeLayout("2006-01-02 15:04:05.999")` customize time format * `log.SetTimeFormat("2006-01-02 15:04:05.999")` customize time format
* `log.SetName("main")` add a name in log for indicate process * `log.SetAppName("main")` add a name in log for indicate process
* `log.EnableGoroutineId(true)` to output goroutine id * `log.SetFlags(F_TIME | F_LONG_FILE | F_SHORT_FILE | F_PID | F_GID | F_COLOR)` to control what's printed
* `log.EnableLongFileFormat(true)` to output long file name
* `log.EnableColorizedLevel(true)` to output colorful message to console
### API on godoc.org ### API on godoc.org

Loading…
Cancel
Save