1- [](https://sonarcloud.io/dashboard?id=nanoframework_nanoFramework.nanoFramework.Logging) [](https://sonarcloud.io/dashboard?id=nanoframework_nanoFramework.nanoFramework.Logging) [](LICENSE) [](https://www.nuget.org/packages/nanoFramework.nanoFramework.Logging/) [](https://github.com/nanoframework/Home/blob/master/CONTRIBUTING.md) [](https://discord.gg/gCyBu8T)
1+ [ ![ Quality Gate Status] ( https://sonarcloud.io/api/project_badges/measure?project=nanoframework_nanoFramework.Logging&metric=alert_status )] ( https://sonarcloud.io/dashboard?id=nanoframework_nanoFramework.Logging ) [ ![ Reliability Rating] ( https://sonarcloud.io/api/project_badges/measure?project=nanoframework_nanoFramework.Logging&metric=reliability_rating )] ( https://sonarcloud.io/dashboard?id=nanoframework_nanoFramework.Logging ) [ ![ License] ( https://img.shields.io/badge/License-MIT-blue.svg )] ( LICENSE ) [ ![ NuGet] ( https://img.shields.io/nuget/dt/nanoFramework.Logging.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework.Logging/ ) [ ![ #yourfirstpr] ( https://img.shields.io/badge/first--timers--only-friendly-blue.svg )] ( https://github.com/nanoframework/Home/blob/main/CONTRIBUTING.md ) [ ![ Discord] ( https://img.shields.io/discord/478725473862549535.svg?logo=discord&logoColor=white&label=Discord&color=7289DA )] ( https://discord.gg/gCyBu8T )
22
3- ![ nanoFramework logo] ( https://github. com/nanoframework/Home/blob/master /resources/logo/nanoFramework-repo-logo.png )
3+ ![ nanoFramework logo] ( https://raw.githubusercontent. com/nanoframework/Home/main /resources/logo/nanoFramework-repo-logo.png )
44
55-----
66
7- ### Welcome to the ** nanoFramework** nanoFramework.Logging Library repository!
7+ ### Welcome to the .NET ** nanoFramework** nanoFramework.Logging Library repository
88
99## Build status
1010
1111| Component | Build Status | NuGet Package |
1212| :-| ---| ---|
13- | nanoFramework.Logging | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_apis/build/status/nanoframework.nanoFramework.nanoFramework. Logging?branchName=master )] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_build/latest?definitionId=12? branchName=master ) | [ ![ NuGet] ( https://img.shields.io/nuget/v/nanoFramework.nanoFramework. Logging.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework. nanoFramework.Logging/ ) |
14- | nanoFramework.Logging (preview) | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_apis/build/status/nanoframework.nanoFramework.nanoFramework. Logging?branchName=develop )] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_build/latest?definitionId=12? branchName=develop ) | [ ![ ] ( https://badgen.net/badge/NuGet/preview/D7B023?icon=https://simpleicons.now.sh/azuredevops/fff )] ( https://dev.azure.com/nanoframework/feed/_packaging?_a=package&feed=sandbox&package= nanoFramework.nanoFramework. Logging&protocolType=NuGet&view=overview ) |
15- | nanoFramework.Logging.Serial | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_apis/build/status/nanoframework.nanoFramework.nanoFramework. Logging?branchName=master )] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_build/latest?definitionId=12? branchName=master ) | [ ![ NuGet] ( https://img.shields.io/nuget/v/nanoFramework.nanoFramework. Logging.Serial.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework. nanoFramework.Logging.Serial/ ) |
16- | nanoFramework.Logging.Serial (preview) | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_apis/build/status/nanoframework.nanoFramework.nanoFramework. Logging?branchName=develop )] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_build/latest?definitionId=12? branchName=develop ) | [ ![ ] ( https://badgen.net/badge/NuGet/preview/D7B023?icon=https://simpleicons.now.sh/azuredevops/fff )] ( https://dev.azure.com/nanoframework/feed/_packaging?_a=package&feed=sandbox&package= nanoFramework.nanoFramework. Logging.Serial&protocolType=NuGet&view=overview ) |
17- | nanoFramework.Logging.Stream | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_apis/build/status/nanoframework.nanoFramework.nanoFramework. Logging?branchName=master )] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_build/latest?definitionId=12? branchName=master ) | [ ![ NuGet] ( https://img.shields.io/nuget/v/nanoFramework.nanoFramework. Logging.Stream.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework. nanoFramework.Logging.Stream/ ) |
18- | nanoFramework.Logging.Stream (preview) | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_apis/build/status/nanoframework.nanoFramework.nanoFramework. Logging?branchName=develop )] ( https://dev.azure.com/nanoframework/nanoFramework.nanoFramework. Logging/_build/latest?definitionId=12? branchName=develop ) | [ ![ ] ( https://badgen.net/badge/NuGet/preview/D7B023?icon=https://simpleicons.now.sh/azuredevops/fff )] ( https://dev.azure.com/nanoframework/feed/_packaging?_a=package&feed=sandbox&package= nanoFramework.nanoFramework. Logging.Stream&protocolType=NuGet&view=overview ) |
13+ | nanoFramework.Logging | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_apis/build/status/nanoframework.nanoFramework.Logging?branchName=main )] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_build/latest?definitionId=71& branchName=main ) | [ ![ NuGet] ( https://img.shields.io/nuget/v/nanoFramework.Logging.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework.Logging/ ) |
14+ | nanoFramework.Logging (preview) | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_apis/build/status/nanoframework.nanoFramework.Logging?branchName=develop )] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_build/latest?definitionId=71& branchName=develop ) | [ ![ NuGet ] ( https://img.shields.io/nuget/vpre/nanoFramework.Logging.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/ nanoFramework.Logging/ ) |
15+ | nanoFramework.Logging.Serial | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_apis/build/status/nanoframework.nanoFramework.Logging?branchName=main )] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_build/latest?definitionId=71& branchName=main ) | [ ![ NuGet] ( https://img.shields.io/nuget/v/nanoFramework.Logging.Serial.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework.Logging.Serial/ ) |
16+ | nanoFramework.Logging.Serial (preview) | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_apis/build/status/nanoframework.nanoFramework.Logging?branchName=develop )] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_build/latest?definitionId=71& branchName=develop ) | [ ![ NuGet ] ( https://img.shields.io/nuget/vpre/nanoFramework.Logging.Serial.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/ nanoFramework.Logging.Serial/ ) |
17+ | nanoFramework.Logging.Stream | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_apis/build/status/nanoframework.nanoFramework.Logging?branchName=main )] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_build/latest?definitionId=71& branchName=main ) | [ ![ NuGet] ( https://img.shields.io/nuget/v/nanoFramework.Logging.Stream.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/nanoFramework.Logging.Stream/ ) |
18+ | nanoFramework.Logging.Stream (preview) | [ ![ Build Status] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_apis/build/status/nanoframework.nanoFramework.Logging?branchName=develop )] ( https://dev.azure.com/nanoframework/nanoframework. Logging/_build/latest?definitionId=71& branchName=develop ) | [ ![ NuGet ] ( https://img.shields.io/nuget/vpre/nanoFramework.Logging.Stream.svg?label=NuGet&style=flat&logo=nuget )] ( https://www.nuget.org/packages/ nanoFramework.Logging.Stream/ ) |
1919
2020
2121## Feedback and documentation
@@ -26,7 +26,7 @@ Join our Discord community [here](https://discord.gg/gCyBu8T).
2626
2727## Credits
2828
29- The list of contributors to this project can be found at [ CONTRIBUTORS] ( https://github.com/nanoframework/Home/blob/master /CONTRIBUTORS.md ) .
29+ The list of contributors to this project can be found at [ CONTRIBUTORS] ( https://github.com/nanoframework/Home/blob/main /CONTRIBUTORS.md ) .
3030
3131## License
3232
@@ -109,8 +109,8 @@ Note that you can adjust the baud speed and all other elements.
109109Or directly using a SerialLogger:
110110
111111``` csharp
112- SerialDevice _serial ;
113- _serial = SerialDevice . FromId (" COM6" , 115200 );
112+ SerialPort _serial ;
113+ _serial = new SerialPort (" COM6" , 115200 );
114114SerialLogger _logger = new SerialLogger (ref _serial );
115115_logger .MinLogLevel = LogLevel .Trace ;
116116_logger .LogTrace (" This is a trace" );
@@ -174,9 +174,71 @@ _logger.LogTrace("This won't be displayed, only critical will be");
174174_logger .LogCritical (" Critical message will be displayed" );
175175```
176176
177+ ### Create your own formatting
178+
179+ You can use a custom formatter which will give you the name of the logger, the log level, the event ID, the message itself and a potential exception. The function definition should follow the following pattern:
180+
181+ ``` csharp
182+ public interface IMessageFormatter
183+ {
184+ string MessageFormatter (string className , LogLevel logLevel , EventId eventId , string state , Exception exception );
185+ }
186+ ```
187+
188+ ** Important** : this function will be called directly, without instantiating the class it is part of. So make sure either this function is a static, either it's part of the class using the logger. The static option always works. The interface is given for convenience and to give the format.
189+
190+ To setup the formatting, just use the following line. The type of the class containing the function and the exact name of the function are required.
191+
192+ ``` csharp
193+ LoggerExtensions .MessageFormatter = typeof (MyFormatter ).GetType ().GetMethod (" MessageFormatterStatic" );
194+
195+ public class MyFormatter
196+ {
197+ public string MessageFormatterStatic (string className , LogLevel logLevel , EventId eventId , string state , Exception exception )
198+ {
199+ string logstr = string .Empty ;
200+ switch (logLevel )
201+ {
202+ case LogLevel .Trace :
203+ logstr = " TRACE: " ;
204+ break ;
205+ case LogLevel .Debug :
206+ logstr = " I love debug: " ;
207+ break ;
208+ case LogLevel .Warning :
209+ logstr = " WARNING: " ;
210+ break ;
211+ case LogLevel .Error :
212+ logstr = " ERROR: " ;
213+ break ;
214+ case LogLevel .Critical :
215+ logstr = " CRITICAL:" ;
216+ break ;
217+ case LogLevel .None :
218+ case LogLevel .Information :
219+ default :
220+ break ;
221+ }
222+
223+ string eventstr = eventId .Id != 0 ? $" Event ID: {eventId }, " : string .Empty ;
224+ string msg = $" [{className }] {eventstr }{logstr } {state }" ;
225+ if (exception != null )
226+ {
227+ msg += $" {exception }" ;
228+ }
229+
230+ return msg ;
231+ }
232+ }
233+ ```
234+
235+ You are free to use anything you'd like and format as you like the message.
236+
237+ Note: It is ** not** necessary to add a \r\n at the end, this is done by each logger.
238+
177239## Code of Conduct
178240
179- This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
241+ This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behaviour in our community.
180242For more information see the [ .NET Foundation Code of Conduct] ( https://dotnetfoundation.org/code-of-conduct ) .
181243
182244### .NET Foundation
0 commit comments