serilog-archive / serilog-sinks-nlog

A Serilog sink that writes events to NLog
Apache License 2.0
9 stars 7 forks source link

Empty lines in log #9

Open KoalaBear84 opened 4 years ago

KoalaBear84 commented 4 years ago

Because of Serilog can't getting their rolling logfiles together I thought, why not let the File part be handled by NLog which has no problem with it.

Which at least getting the rolling log part handled, but now have empty lines because the Serilog sink probably also returns it with a line ending, and NLog adding one too.

nlog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="info"
      internalLogFile="c:\temp\internal-nlog.txt">

    <targets>
        <target xsi:type="File" name="mainLogFile"
                fileName="Log_Main.log"
                archiveFileName="Archives\Main.{##}.log"
                archiveAboveSize="5242880"
                archiveNumbering="Sequence"
                maxArchiveFiles="10"
                layout="${message}" />

        <target xsi:type="File"
                name="quartzSchedulerLogging"
                fileName="Log_QuartzScheduler.log"
                archiveFileName="Archives\QuartzScheduler.{##}.log"
                archiveAboveSize="5242880"
                archiveNumbering="Sequence"
                maxArchiveFiles="10"
                layout="${message}" />
    </targets>
    <rules>
        <logger final="true" name="*Quartz*" minlevel="Trace" writeTo="quartzSchedulerLogging" />
        <logger name="*" minlevel="Trace" writeTo="mainLogFile" />
    </rules>
</nlog>

Example output:

2020-10-30 10:29:18.428|  1|INF|Quartz.Core.QuartzScheduler|Scheduler QuartzScheduler_$_NON_CLUSTERED started.

2020-10-30 10:29:18.440|  4|DBG|Quartz.Core.QuartzSchedulerThread|Batch acquisition of 0 triggers

2020-10-30 10:29:18.466|  1|INF|Quartz.Core.QuartzScheduler|Scheduler QuartzScheduler_$_NON_CLUSTERED started.

2020-10-30 10:29:18.466|  4|DBG|Quartz.Core.QuartzSchedulerThread|Batch acquisition of 0 triggers

2020-10-30 10:29:18.799|  4|DBG|Quartz.Core.QuartzSchedulerThread|Batch acquisition of 0 triggers

Wished output:

2020-10-30 10:29:18.428|  1|INF|Quartz.Core.QuartzScheduler|Scheduler QuartzScheduler_$_NON_CLUSTERED started.
2020-10-30 10:29:18.440|  4|DBG|Quartz.Core.QuartzSchedulerThread|Batch acquisition of 0 triggers
2020-10-30 10:29:18.466|  1|INF|Quartz.Core.QuartzScheduler|Scheduler QuartzScheduler_$_NON_CLUSTERED started.
2020-10-30 10:29:18.466|  4|DBG|Quartz.Core.QuartzSchedulerThread|Batch acquisition of 0 triggers
2020-10-30 10:29:18.799|  4|DBG|Quartz.Core.QuartzSchedulerThread|Batch acquisition of 0 triggers

Am I missing something?

KoalaBear84 commented 4 years ago

Hmm, I do see a solution/workaround.

Adding lineEnding="None" to the File targets work.

Is this the normal way?

Could a sample nlog.config, including this workaround, be added to the readme?