README.markdown
1Seelog
2=======
3
4Seelog is a powerful and easy-to-learn logging framework that provides functionality for flexible dispatching, filtering, and formatting log messages.
5It is natively written in the [Go](http://golang.org/) programming language.
6
7[![Build Status](https://drone.io/github.com/cihub/seelog/status.png)](https://drone.io/github.com/cihub/seelog/latest)
8
9Features
10------------------
11
12* Xml configuring to be able to change logger parameters without recompilation
13* Changing configurations on the fly without app restart
14* Possibility to set different log configurations for different project files and functions
15* Adjustable message formatting
16* Simultaneous log output to multiple streams
17* Choosing logger priority strategy to minimize performance hit
18* Different output writers
19 * Console writer
20 * File writer
21 * Buffered writer (Chunk writer)
22 * Rolling log writer (Logging with rotation)
23 * SMTP writer
24 * Others... (See [Wiki](https://github.com/cihub/seelog/wiki))
25* Log message wrappers (JSON, XML, etc.)
26* Global variables and functions for easy usage in standalone apps
27* Functions for flexible usage in libraries
28
29Quick-start
30-----------
31
32```go
33package main
34
35import log "github.com/cihub/seelog"
36
37func main() {
38 defer log.Flush()
39 log.Info("Hello from Seelog!")
40}
41```
42
43Installation
44------------
45
46If you don't have the Go development environment installed, visit the
47[Getting Started](http://golang.org/doc/install.html) document and follow the instructions. Once you're ready, execute the following command:
48
49```
50go get -u github.com/cihub/seelog
51```
52
53*IMPORTANT*: If you are not using the latest release version of Go, check out this [wiki page](https://github.com/cihub/seelog/wiki/Notes-on-'go-get')
54
55Documentation
56---------------
57
58Seelog has github wiki pages, which contain detailed how-tos references: https://github.com/cihub/seelog/wiki
59
60Examples
61---------------
62
63Seelog examples can be found here: [seelog-examples](https://github.com/cihub/seelog-examples)
64
65Issues
66---------------
67
68Feel free to push issues that could make Seelog better: https://github.com/cihub/seelog/issues
69
70Changelog
71---------------
72* **v2.6** : Config using code and custom formatters
73 * Configuration using code in addition to xml (All internal receiver/dispatcher/logger types are now exported).
74 * Custom formatters. Check [wiki](https://github.com/cihub/seelog/wiki/Custom-formatters)
75 * Bugfixes and internal improvements.
76* **v2.5** : Interaction with other systems. Part 2: custom receivers
77 * Finished custom receivers feature. Check [wiki](https://github.com/cihub/seelog/wiki/custom-receivers)
78 * Added 'LoggerFromCustomReceiver'
79 * Added 'LoggerFromWriterWithMinLevelAndFormat'
80 * Added 'LoggerFromCustomReceiver'
81 * Added 'LoggerFromParamConfigAs...'
82* **v2.4** : Interaction with other systems. Part 1: wrapping seelog
83 * Added configurable caller stack skip logic
84 * Added 'SetAdditionalStackDepth' to 'LoggerInterface'
85* **v2.3** : Rethinking 'rolling' receiver
86 * Reimplemented 'rolling' receiver
87 * Added 'Max rolls' feature for 'rolling' receiver with type='date'
88 * Fixed 'rolling' receiver issue: renaming on Windows
89* **v2.2** : go1.0 compatibility point [go1.0 tag]
90 * Fixed internal bugs
91 * Added 'ANSI n [;k]' format identifier: %EscN
92 * Made current release go1 compatible
93* **v2.1** : Some new features
94 * Rolling receiver archiving option.
95 * Added format identifier: %Line
96 * Smtp: added paths to PEM files directories
97 * Added format identifier: %FuncShort
98 * Warn, Error and Critical methods now return an error
99* **v2.0** : Second major release. BREAKING CHANGES.
100 * Support of binaries with stripped symbols
101 * Added log strategy: adaptive
102 * Critical message now forces Flush()
103 * Added predefined formats: xml-debug, xml-debug-short, xml, xml-short, json-debug, json-debug-short, json, json-short, debug, debug-short, fast
104 * Added receiver: conn (network connection writer)
105 * BREAKING CHANGE: added Tracef, Debugf, Infof, etc. to satisfy the print/printf principle
106 * Bug fixes
107* **v1.0** : Initial release. Features:
108 * Xml config
109 * Changing configurations on the fly without app restart
110 * Contraints and exceptions
111 * Formatting
112 * Log strategies: sync, async loop, async timer
113 * Receivers: buffered, console, file, rolling, smtp
114
115
116
117