Skip to content

Wrong file retention with multiple logs in the same dir #22

@sommcz

Description

@sommcz

I have configuration with two log files (debug and brief). I have configured archiveHook with different parameters for each one (300days and 1000days). They are written to the same directory.

"WriteTo": {
    "MainFile": {
        "Name": "File",
        "Args": {
            "path": "./Logs/log-debug.log",
            "rollingInterval": "Day",
            "retainedFileCountLimit": 7,
            "hooks": "My.Core.SerilogHooks::CompressArchive300Hook",
        }
    },
    "BriefFile": {
        "Name": "File",
        "Args": {
            "path": "./Logs/log-brief.log",
            "rollingInterval": "Day",
            "retainedFileCountLimit": 7,
            "hooks": "My.Core.SerilogHooks::CompressArchive1000Hook",
            "restrictedToMinimumLevel": "Information",
        }
    }
}
public static class SerilogHooks
{
	public static ArchiveHooks CompressArchiveHook => new ArchiveHooks(1000, CompressionLevel.Optimal);
	public static ArchiveHooks CompressArchive300Hook => new ArchiveHooks(300, CompressionLevel.Optimal);
        //....
}

Expected:
ArchiveHook deletes files in each group (by name pattern) based on theirs hook settings (number of retainedFiles)

Actual:
ArchiveHook deletes all files in log directory, so all files from one log (which is first in name sort) are deleted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions