كيفية جعل Nlog أرشفة الملفات مع التاريخ عندما وقع تسجيل مكان

StackOverflow https://stackoverflow.com/questions/1635973

  •  06-07-2019
  •  | 
  •  

سؤال

ونحن نستخدم Nlog كإطار تسجيل لدينا وأنا لا يمكن أن نجد طريقة لأرشفة ملفات بالطريقة التي أريدها. وأود أن يكون تاريخ عندما وقع تسجيل مكان في اسم ملف التسجيل.
السابق يجب وضع جميع قطع الأشجار التي HAPPEND من 2009-10-01 00:00 -> 2009-10-01:23:59 في Log.2009-10-01.log. ولكن كل السجلات لهذا اليوم ينبغي أن توضع في Log.log عن المخلفات وكذا.

وو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" >
  <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>

ولكن هذا يحدد التاريخ في ملف السجل إلى التاريخ عندما يتم إنشاء ملف السجل الجديد. التي تسبب الإحباط عندما تريد قراءة السجلات في وقت لاحق.

ويبدو أيضا مثل ولدي أن يكون أتلست # احد في archiveFileName، وأنا لا بل. حتى إذا كنت حصلت على حل لذلك أيضا سأكون شاكرا مرتين كما =)

هل كانت مفيدة؟

المحلول

وفقط في حالة إذا كان شخص ما زال يحتاج إلى حل - تمت إضافة ميزة طلب NLog مؤخرا: https://github.com/NLog/NLog/pull/241 ، إلا أنها لا تزال غير متوفرة عن طريق Nuget

نصائح أخرى

وربما بعد فوات الأوان لمساعدتك، ولكن أعتقد أن كل ما عليك القيام به هو تضمين التاريخ في اسم الملف باستخدام في تاريخ تخطيط العارض مع شكل . من قبل بما في ذلك التاريخ، لا تحتاج إلى تحديد ملامح الأرشيف. عندما يتغير التاريخ، سيتم إنشاء ملف جديد تلقائيا.

<?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>

وربما هذا هو ما تحتاج إليه، مجلد اليومي مع ملف Log.log في ذلك

<target xsi:type="File" name="file1" fileName="${basedir}/logs/Log.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top