2012-05-04 15 views
5

Estoy usando NLog en uno de mis proyectos y estoy tratando de comprimir la salida de los archivos. Intenté usar el atributo de archivo comprimido, pero cuando miro los archivos, no están comprimidos.Cómo comprimir archivos de registro con NLog

¿Podría decirme qué podría estar haciendo mal?

Esta es mi config:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <targets> 
     <target name="file" xsi:type="File" fileName="C:\Workspaces\log.xml" 
       layout="${message}" keepFileOpen="true" 
       archiveFileName = "C:\Workspaces\archived\log.{#####}.xml" 
       archiveAboveSize = "1048576" archiveNumbering = "Sequence" 
       fileAttributes="Compressed" concurrentWrites = "true"/> 
    </targets> 

    <rules> 
     <logger name ="*" minlevel="Debug" writeTo="file" /> 
    </rules> 
</nlo 

g>

+1

¿Está habilitada la compresión de archivos en el disco? Cree un archivo normal con algún contenido, haga una copia y luego marque esta copia como comprimida: compare el tamaño del archivo de los dos. –

+0

Parece una solución a través del sistema operativo, pero no la solución que estoy buscando. Ejemplo dado: ¿Qué pasa si quiero mover ese archivo a otro sistema, todavía estará comprimido? – SysCoder

+0

parece ser un error informado, [puede comentar en git-hub] (https://github.com/NLog/NLog/issues/244) para que puedan darle más prioridad a este problema –

Respuesta

4

Con Nlog 4 se puede comprimir para comprimir archivos (.Net 4.5 +). Consulte the NLog 4.0 release post

Utilice enableArchiveFileCompression, p. Ej.

<target name="file" xsi:type="File" 
     layout="${longdate} ${logger} ${message}" 
     fileName="${basedir}/logs/logfile.txt" 
     archiveFileName="${basedir}/archives/log.{#}.txt" 
     archiveEvery="Day" 
     archiveNumbering="Rolling" 
     maxArchiveFiles="7" 
    enableArchiveFileCompression="true" /> 
Cuestiones relacionadas