【问题标题】:How to configure NLog FileTarget to create sub-folder for each username?如何配置 NLog FileTarget 为每个用户名创建子文件夹?
【发布时间】:2021-04-01 15:30:55
【问题描述】:

我想使用 ILogger 使用 Microsoft.Extensions.NLog 创建自定义文件夹和日志。我希望我系统中的每个用户都到他的个人文件夹。我创建了一个这样的目标。

<target xsi:type="File"
            name="fileLog"
            fileName="${basedir}/${userName}/${userName}.log"
            maxArchiveFiles="50"
            archiveAboveSize="10000000"
            layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}| ${uppercase:${level}} ${logger}|${message} ${exception:format=ToString,StackTrace}" />

例如,当我想编写一个日志用户名以像参数一样传输时。

Logger.LogError("Something went wrong. Id: {userName}", userName);

非常感谢您的帮助!

【问题讨论】:

  • 你有一些方向here
  • @Ergis 这是用于 NLog,而不是用于 Microsoft.Extensions.NLog,我试过了,但不起作用。
  • 我愿意提供帮助,但您的问题不清楚。什么有效,什么无效?这是一个自定义目标吗?
  • @Julian 主要想法是我有用户,我想为每个用户创建单独的日志。例如,在 NLog 中,您可以像 GlobalDiagnosticsContext.Set("UserId_From_DB","42"); 那样执行此操作,但在 Microsoft.Extension.NLog 中,ILogger 是不同的。我如何为 ILogger 制作这个,每个用户的动态文件夹名称?

标签: c# .net nlog


【解决方案1】:

我猜你可以这样做:

<nlog>
   <variable name="UserName" layout="${event-properties:item=userName:whenEmpty=App}" />

   <targets>
     <target xsi:type="File"
            name="fileLog"
            fileName="${basedir}/${UserName}/${UserName}.log"
            maxArchiveFiles="50"
            archiveAboveSize="10000000"
            layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}| ${uppercase:${level}} ${logger}|${message} ${exception:format=ToString,StackTrace}" />
   </targets>

   <rules>
      <logger name="*" minLevel="Debug" writeTo="fileLog" />
   </rules>
</nlog>

那么你可以这样做:

Logger.LogError("Something went wrong. Id: {userName}", userName);

另请参阅:https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-properties-with-Microsoft-Extension-Logging

另见:https://github.com/NLog/NLog/wiki/Environment-User-Layout-Renderer

另见:https://github.com/NLog/NLog/wiki/AspNetUserIdentity-layout-renderer

另请参阅:https://github.com/NLog/NLog/wiki/AspNet-User-Claim-layout-renderer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多