Skip to content

FileTarget ignores OpenFileCacheSize property, process Handles count increases #5951

@apdevelop

Description

@apdevelop

NLog version: 6.0.2 (also 6.0.0, 6.0.1)
Platform: .NET8, Console App, Release build
Current NLog config

<nlog>
	<targets>
		<target xsi:type="File" name="file0" fileName="${tempdir}/${date:format=yyyy-MM-dd}.log" layout="${date:format=HH\:mm\:ss},${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file1" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-1.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file2" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-2.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file3" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-3.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file4" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-4.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file5" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-5.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file6" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-6.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file7" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-7.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file8" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-8.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file9" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-9.log" layout="${message}" openFileCacheSize="1" />
		<target xsi:type="File" name="file10" fileName="${tempdir}/${date:format=yyyy-MM-dd_HH-mm}-10.log" layout="${message}" openFileCacheSize="1" />
	</targets>

	<rules>
		<logger name="*" minlevel="Info" writeTo="file0" />
		<logger name="*" minlevel="Info" writeTo="file1" />
		<logger name="*" minlevel="Info" writeTo="file2" />
		<logger name="*" minlevel="Info" writeTo="file3" />
		<logger name="*" minlevel="Info" writeTo="file4" />
		<logger name="*" minlevel="Info" writeTo="file5" />
		<logger name="*" minlevel="Info" writeTo="file6" />
		<logger name="*" minlevel="Info" writeTo="file7" />
		<logger name="*" minlevel="Info" writeTo="file8" />
		<logger name="*" minlevel="Info" writeTo="file9" />
		<logger name="*" minlevel="Info" writeTo="file10" />
	</rules>
</nlog>
  • What is the current result?
    Program creates 10 new log files every minute and process Handles count increases by 10 too.

  • What is the expected result?
    Program should keep opened no more than 1 file at the same time, so the Handles count must be nearly constant.

  • Did you checked the Internal log?
    Yes, a lot of 'Creating writer to file...' Debug messages

  • Please post full exception details (message, stacktrace, inner exceptions)
    No exceptions.

  • Are there any workarounds? yes/no
    Yes, downgrading to 5.5.0 version of NLog.
    Trying also to set openFileCacheTimeout="20" , but Handles count increases even more fast.
    Is there any breaking changes in FileTarget configuration?

  • Is there a version in which it did work?
    NLog version 5.5.0 works fine, process Handles count doesn't increase after creating new set of log files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions