Question

I have Enterprise Library Logging used throughout my project which is working perfectly, however I have noticed that the folder containing the logs has started to become bloated with old logs that are no longer needed. My set up in app.config is:

    <add name="CommonListener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    fileName="D:\Logs\Common.log" footer="   "
    formatter="Text Formatter" header="   " rollFileExistsBehavior="Increment"
    rollInterval="Midnight" rollSizeKB="1000000"/>

At present I am able to delete these manually, but that will lead to problems down the line as I won't have access to where they will be stored. Is there a configuration that I can add into the config file that will flag them to be deleted after 'x' amount of days?

Was it helpful?

Solution

I fixed this by limiting the amount of files that Enterprise Logging sotes by adding the following to app.config within the listener declaration:

maxArchivedFiles="20"

Now the logging will only keep up to 20 files and delete the oldest as this threshold is reached.

Another way I found to do this which does not involve Enterprise Library can be found here: Background Worker Check For When It's Midnight?

This done through System.IO to raise an event when a certain time has elapsed. It is then combined with a function to delete all files as found in this answer:

delete folder/files and subfolder

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top