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