Logging ======= **Energy.Core.Log** provides a structured logging framework with multiple destinations. The default logger is a singleton accessible through `Energy.Core.Log.Default`. Default logger -------------- ```csharp Energy.Core.Log.Default.Write("Application started"); Energy.Core.Log.Default.Write(Energy.Enumeration.LogLevel.Error, "Something went wrong"); ``` Logger ------ **Energy.Core.Log.Logger** is the main logger class. It holds a list of `Energy.Base.Log.Entry` items and a `Destination` collection of targets. ```csharp Energy.Core.Log.Logger logger = new Energy.Core.Log.Logger(); logger.Setup("app.log", true, null); logger.Add("Message", Energy.Enumeration.LogLevel.Message); logger.Flush(); ``` Setup ----- ```csharp bool Setup(string file, bool console, EventHandler eventHandler) ``` Quickly configure file, console, and event targets. Targets ------- | Target | Description | |--------|-------------| | `Energy.Core.Log.Target.Trace` | Writes to `System.Diagnostics.Trace`. | | `Energy.Core.Log.Target.File` | Writes to a file. | | `Energy.Core.Log.Target.Console` | Writes to the console. | | `Energy.Core.Log.Target.Event` | Raises an event handler. | ```csharp Energy.Core.Log.Logger logger = new Energy.Core.Log.Logger(); logger.Destination.Add(new Energy.Core.Log.Target.Console { Immediate = true, Background = true, }); logger.Destination.Add(new Energy.Core.Log.Target.File { Path = "app.log", Immediate = true, }); ``` Methods ------- | Method | Description | |--------|-------------| | `Add(Entry)` | Add a log entry. | | `Add(Exception)` | Add an exception entry. | | `Add(string, LogLevel)` | Add a message with severity. | | `Add(string, int)` | Add a message with numeric severity. | | `Flush()` | Save entries to all destinations and clean the buffer. | | `Clean()` | Remove entries that were written to all destinations. | | `ToString()` | Return the buffered entries as text. | See also -------- - `base-log` for log primitives (`Entry`, `Target`, `Destination`). - `enumeration` for `LogLevel` values.