NLog / NLog/NLog.Extensions.Logging

Verify Target-Ref working with SplitGroup with AppSettings.json

Open
#667 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement up-for-grabs
Dominant language
C#
Stars
403
Forks
150
Avg merge
1h 3m
Merged PRs (30d)
3

Description

Could be nice if one could do this:

{
  "NLog": {
    "throwConfigExceptions": true,
    "targets": {
      "logconsole": {
        "type": "Console"
      },
      "email": {
        "type": "mail"
      },
      "bothTargets": {
        "type": "SplitGroup",
        "targets": {
            "logconsole": null,
            "email": null
        }
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Info",
        "writeTo": "bothTargets"
      }
    ]
  }
}

Maybe one will get "cheated" by the automatic sorting of dictionary-items, so the splitgroup must be named so it comes "last", after the other target-names to ensure they have been parsed/declared.

Similar to this:

<targets>  
   <target name='email' xsi:type='mail' />
   <target name='logconsole' xsi:type='console' />

   <target name="bothTargets" xsi:type="SplitGroup">
        <target-ref name="logconsole" />
        <target-ref name="email" />
   </target>
</targets>

See also: https://github.com/NLog/NLog.Extensions.Logging/issues/568#issuecomment-1030264661

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the AppSettings.json configuration with the SplitGroup target and its logconsole and email references, then compare its behavior with the XML target-ref example. Determine whether declaration order or dictionary sorting affects target resolution; done means the behavior is verified and any required change is identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
observability-sre
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.