registro que logs borrar archivo aow_drv error-handling logging nlog

error handling - que - NLog rotar y limpiar archivos de registro



borrar logs windows 7 (1)

Parece que el problema es la fecha shortdate en la definición de su nombre de archivo. Vea mi respuesta a esta pregunta: eliminar archivos de registro después de x días

Tienes que definir el nombre del archivo sin la parte de la fecha.

fileName="${basedir}/logs/Log.info.txt

Dentro de mi empresa estamos trabajando con NLog. Estamos experimentando problemas con una gran cantidad de archivos de registro. Lo que queremos hacer es archivar los archivos por día y mantener una cantidad máxima de x archivos. Digamos que 7. He leído varios temas en Internet con respecto a esto y en su mayoría me están apuntando en la misma dirección para modificar mi archivo NLog.config. Sin embargo, no parece estar dispuesto a rotar los archivos como espero que lo haga. Actualmente nada se está archivando en la carpeta deseada. Pero todos los archivos se guardan en el directorio ''logs'' en el siguiente formato;

Log.info.2011-11-07.txt

Dentro de mi aplicación tengo un directorio ''logs''. Dentro de esa carpeta se guardan todos los archivos de registro. También tengo una carpeta llamada ''archivos'' en la que quiero archivar todos los archivos antiguos. Una vez que se haya alcanzado el número máximo de archivos de registro dentro de ese directorio, se deben limpiar automáticamente. es posible? Mi archivo NLog.config actual se ve a continuación;

<?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" throwExceptions="true" internalLogFile="C:/nlog-internal.txt" internalLogLevel="Error"> <extensions> <add assembly="NLog.Extended" /> </extensions> <targets> <!-- will move file to archive once it reaches 1MB. Files are archived by day, with a maximum of three files. ConcurrentWrites is set to false, change to true if multiple processes will be writing to the logfile--> <target name="file" xsi:type="File" fileName="${basedir}/logs/Log.info.${shortdate}.txt" layout="${longdate} ${callsite} ${level}: ${message} ${exception:format=Message,StackTrace} ${stacktrace}" archiveFileName="${basedir}/logs/archives/log.info.${shortdate}.txt" archiveAboveSize="1048576" archiveEvery="Day" archiveNumbering = "Rolling" maxArchiveFiles="7" concurrentWrites="false" /> <target name="file-default" xsi:type="File" fileName="${basedir}/log_default.txt"/> <target name="file-debug" xsi:type="File" fileName="${basedir}/log_debug.txt"/> <target name="file-testclass" xsi:type="File" fileName="${basedir}/log_testclass.txt"/> <target name="mail" xsi:type="Mail" subject="${level} - ${aspnet-request:serverVariabele=PATH_INFO} | ${callsite:includeSourcePath=true}" to="[email protected]" smtpServer="mail.server.com" from="[email protected]"/> <target xsi:type="Database" name="TestDatabaseLogging" connectionString="Data Source=123.123.123.123;Initial Catalog=NLog_Test;User ID=su_Nlog;Password=test123" dbDatabase="NLog_Test"> <commandText> insert into INNO_LOG ([createDate], [Origin], [LogLevel], [Message], [Exception], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @exception, @stackTrace) </commandText> <parameter name="@createDate" layout="${date}"/> <parameter name="@origin" layout="${callsite}"/> <parameter name="@logLevel" layout="${level}"/> <parameter name="@message" layout="${message}"/> <parameter name="@exception" layout="${exception:format=Message,StackTrace}"/> <parameter name="@stackTrace" layout="${stacktrace}"/> </target> </targets> <rules> <logger name="*" minlevel="Fatal" writeTo="mail" /> <logger name="*" minlevel="Error" writeTo="TestDatabaseLogging" /> <logger name="*" minlevel="Debug" writeTo="file-debug" /> <logger name="*" minlevel="Info" writeTo="file" /> <!--Log to specific files for specific classes.--> <logger name="_Default" minlevel="Trace" writeTo="file-default" /> <logger name="TestClass" minlevel="Trace" writeTo="file-testclass" /> </rules> </nlog>

EDITAR: La solución final (cortada) después de la respuesta de los ckellers.

<target name="file" xsi:type="File" fileName="${basedir}/logs/Log.${level}.current.txt" layout="${longdate} ${callsite} ${level}: ${message} ${exception:format=Message,StackTrace} ${stacktrace}" archiveFileName="${basedir}/logs/archives/log.error.${shortdate}.{#}.txt" archiveAboveSize="5242880" archiveEvery="Day" archiveNumbering = "Rolling" maxArchiveFiles="3" />