【发布时间】: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 制作这个,每个用户的动态文件夹名称?