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