Cached Layout Renderer

Applies caching to another layout output.

Platforms Supported: All

Configuration Syntax

${cached:cached=Boolean:clearCache=ClearCacheOption:inner=Layout:cacheKey=Layout}

or by using ambient property to modify output of other layout renderer:

Parameters

Caching Options

  • cached - Indicates whether this CachedLayoutRendererWrapper is enabled. Boolean Default: True
  • clearCache - Indicates when the cache is cleared. Possible options: None, OnInit, Onclose. ClearCacheOption Default: OnInit, OnClose.

    Introduced in NLog 4.2.

  • cacheKey - the layout to be checked if the cache is still valid. For example, the current day. Default: null.

    Introduced in NLog 4.3.9

  • cachedSeconds - Cached value will expire after timeout. Default: infinite

    Introduced in NLog 4.6.8

Transformation Options

  • inner - Wrapped layout. Layout

Examples

  • ${cached:cached=true:clearCache=OnInit,OnClose:inner=l}: The value of l is cached and the cache will be cleared when the layout renderer is initialized or when it is closed. This is the same as ${cached:cached=true:inner=l}.
  • ${cached:cached=true:clearCache=None:inner=l}: The value of l is cached and the cache will not be cleared.
  • filename="${cached:cached=true:Inner=${date:format=yyyy-MM-dd hh.mm.ss}:CacheKey=${shortdate}}.log" - Use the first logtime and day in the file name, only one file per day.

Remarks

The value of the inner layout will be rendered only once and reused subsequently.