Jump to: navigation, search

Difference between revisions of "Serilog"


(Example)
(Log event levels)
Line 16: Line 16:
 
{| class="wikitable sortable" | width = "50%"
 
{| class="wikitable sortable" | width = "50%"
 
|-
 
|-
! Argument !! Purpose  
+
! LogLevel !! Purpose  
 
|- align="left"
 
|- align="left"
 
| Verbose || is the noisiest level, generally used only as a last resort when debugging a difficult problem, and rarely (if ever) enabled for a production app. For example, local variables within an algorithm implementation might be logged at this level.
 
| Verbose || is the noisiest level, generally used only as a last resort when debugging a difficult problem, and rarely (if ever) enabled for a production app. For example, local variables within an algorithm implementation might be logged at this level.

Revision as of 07:28, 22 June 2020

Serilog is a portable and structured logging framework to record diagnostic logs into files, console and SQL/NoSQL databases.


[edit]

Description

Serilog
Name Serilog
Purpose Structured logging framework to record diagnostic logs into files, console and SQL/NoSQL databases.
Category UBIK
Returns {{{returns}}}
Version 3.5.0+

Log event levels

LogLevel Purpose
Verbose is the noisiest level, generally used only as a last resort when debugging a difficult problem, and rarely (if ever) enabled for a production app. For example, local variables within an algorithm implementation might be logged at this level.
Debug Debug is used for internal system events that are not necessarily observable from the outside, but useful when determining how something happened. For example, the details of requests and responses made to and from external integration points would often be logged at this level.
Information Information events describe things happening in the system that correspond to its responsibilities and functions. Generally, these are the observable actions the system can perform. For example, processing a payment or updating a user's details will be logged at this level.
Warning When service is degraded, endangered, or may be behaving outside of its expected parameters, Warning level events are used. A warning event should only be emitted when the condition is either transient or can be investigated and fixed - use restraint to avoid polluting the log with spurious warnings. For example, slow response times from a critical database would be logged as warnings.
Error When functionality is unavailable or expectations broken, an Error event is used. For example, receiving an exception when trying to commit a database transaction is an event at this level.
Fatal The most critical level, Fatal events demand immediate attention. For example, an application failing during startup will log a Fatal event. If you have a pager, it goes off when one of these occurs.


Usage

Used to replace our existing Microsoft.Practices.EnterpriseLibrary.Logging with more up-to-date solution like Serilog.

NewFeatures

  • We replaced all the code that uses the Microsoft.Practices.EnterpriseLibrrary.Logging library with the Serilog library.
  • Added a new Class LoggerInitializer which contains all the Serilog Sinks (Log event sinks generally record log events to some external representation, typically the console, a file or data store).
Argument Level Purpose
LogVerbose Verbose method for writing a verbose log message to the output log file logged as Verbose event level. (new)
LogDebugOutput Debug method for writing a debug log message to the output log file logged as Debug event level.
LogInformation Information method for writing an information log message to the output log file logged as Information event level. (new)
ThrowAssertion Information method for writing an assertion log message to the output log file logged as Information event level.
LogSQLStatement LogSQLCommand Information method for writing a sql log message to the output log file logged as Information event level.
LogCustomizing Information method for writing a customizing log message to the output log file logged as Information event level.
LogService Information method for writing a customizing log message to the output log file logged as Information event level.
LogWorkflowOutput Information method for writing a service log message to the output log file logged as Information event level.
LogWarning Warning method for writing a warning log message to the output log file logged as Warning event level.
LogError Error method for writing an error log message to the output log file logged as Error event level. (new)
LogException Error method for writing an exception log message to the output log file logged as Error event level.
LogFatal Fatal method for writing a fatal log message to the output log file logged as Fatal event level. (new)
  • Added a way for the User to configure the default log path, the file count limit, the log event level and rolling policies through Logger.config with changing only the “value”, which are set on their default.
    • Log path is set to C:\Users\.......\source\repos\UBIK.Server\Branches\.......\UBIK.Studio\bin\Debug\Logs.
    • Event level is set to Debug.
    • File count limit is set to 31.
    • Rolling policies is set to Day.


Example

Exemplary values to get Customizing log message using Who-Bert.


               public class ObjectTest
               {
                              public void TestObject (params BaseClass[] InVariables)
                              {
                                              
                                              //Example using static class debugger
                                              Debugger.Output(this, "*** Started");
                                              foreach (BaseClass obj in InVariables)
                                              {
                                                            
  
                                                              // LogCustomizing
                                                              UBIK.Kernel.UBIKKernel.LogCustomizing(System.Reflection.MethodBase.GetCurrentMethod(), "TEST");
                                                               
                                                              Debugger.Output(this, obj.Name + " " + obj.Description);
                                              }
                                              Debugger.Output(this, "*** Finished");
                              }
               }


  • Expected Result :

[22/06/2020 09:21:55]
TEST 
Id = [0] 
UBIK.Whobert.637284145138731645.dll   Void TestObject(UBIK.Kernel.BaseClass[]) 


See also

Useful links [What is Serilog and Tutorial]