# Converters

`log4net.Layout.PatternLayout` and a couple of custom converters are used to format rows in logs based on QSRollingFileAppender:

* `Qlik.Sense.Logging.log4net.Layout.Pattern.CounterPatternConverter`: Add a sequence number to the log row. Parameter:
  * Integer: The last number of the sequence before it is reset.
* `Qlik.Sense.Logging.log4net.Layout.Pattern.Iso8601TimeOffsetPatternConverter`: Add a time stamp (local time with time offset in ISO 8601 format) to the log row.
* `Qlik.Sense.Logging.log4net.Layout.Pattern.HostNamePatternConverter`: Add the host name to the log row.
* `Qlik.Sense.Logging.log4net.Layout.Pattern.GuidPatternConverter`: Add a GUID to the log row.
* `Qlik.Sense.Logging.log4net.Layout.Pattern.ServiceUserNameCachedPatternConverter`: Add the username to the log row.
* `Qlik.Sense.Logging.log4net.Layout.Pattern.EncodedMessagePatternConverter`: Add the encoded message to the log row.
* `Qlik.Sense.Logging.log4net.Layout.Pattern.EncodedExceptionPatternConverter`: Add information on the logged exception to the log row. Parameter (one of the following):
  * MESSAGE: The message in the logged exception.
  * INNERMOSTMESSAGE: The message in the innermost exception of the logged exception.
  * SOURCE: The source of the exception (that is, the name of the app or the object that caused the error).
  * STACKTRACE: The stack trace for the exception.
  * TARGETSITE: The target site for the exception (that is, the method that threw the current exception).
  * HELPLINK: Link to the help file associated with the exception.