Vra

Ons gebruik Nlog as ons aan te meld raamwerk en ek kan 'n manier om argief nie vind lêers die manier wat ek wil. Ek wil graag die datum van wanneer die meld plaasgevind het in die lêernaam te meld nie.
Ex Alle meld dat daar gebeur vanaf 2009-10-01 00:00 -> 2009-10-01:23:59 moet in Log.2009-10-01.log geplaas word. Maar al die logs vir hierdie dag moet in Log.log geplaas word vir stert en so.

Die huidige NLog.config wat ek gebruik so lyk.

<?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" >
  <extensions>
    <add assembly="My.Awesome.LoggingExentions"/>
  </extensions>
    <targets>
        <target name="file1" xsi:type="File"
              fileName="${basedir}/Logs/Log.log"
              layout="${longdate} ${level:uppercase=true:padding=5} ${session} ${storeid} ${msisdn} - ${logger:shortName=true} - ${message} ${exception:format=tostring}"
              archiveEvery="Day"
              archiveFileName="${basedir}/Logs/Log${shortdate}-{#}.log"
              archiveNumbering="Sequence"
              maxArchiveFiles="99999"
              keepFileOpen="true"
            />
    </targets>
  <rules>
      <logger name="*" minlevel="Trace" writeTo="file1" />
  </rules>
</nlog>

Dit stel egter die datum in die logfile om die datum wanneer die nuwe loglêer geskep. Wat frustrasie veroorsaak wanneer jy wil logs later lees.

Dit lyk ook soos ek het ten minste een # in die archiveFileName, wat ek liewer nie. So as jy 'n oplossing vir wat het ek ook sou twee keer so dankbaar wees =)

Was dit nuttig?

Oplossing

Net in die geval as iemand moet nog 'n oplossing - versoek funksie is om NLog bygevoeg onlangs: https://github.com/NLog/NLog/pull/241 , maar dit is nog nie beskikbaar deur Nuget

Ander wenke

Waarskynlik te laat om jou te help, maar ek glo alles wat jy hoef te doen is ook die datum in die lêernaam met behulp van die datum uitleg vertoning met die behoorlike datum formaat . Deur die insluiting van die datum, het jy nie nodig het om die argief funksies spesifiseer. Wanneer die datum verander, 'n nuwe lêer sal outomaties geskep word.

<?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" >
  <extensions>
    <add assembly="My.Awesome.LoggingExentions"/>
  </extensions>
    <targets>
        <target name="file1" xsi:type="File"
                  fileName="${basedir}/Logs/${date:format=yyyy-MM-dd}.log"
                  layout="${longdate} ${level:uppercase=true:padding=5} ${session} ${storeid} ${msisdn} - ${logger:shortName=true} - ${message} ${exception:format=tostring}"
                  keepFileOpen="true"
                />
    </targets>
  <rules>
      <logger name="*" minlevel="Trace" writeTo="file1" />
  </rules>
</nlog>

Miskien is dit wat jy nodig het, Daaglikse gids met die lêer Log.log daarin

<target xsi:type="File" name="file1" fileName="${basedir}/logs/Log.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top