C# NLog重命名旧文件更改原始文件名
我正在局域网环境中的Asp.net framework应用程序中使用Nlog。 我有10个使用该应用程序的不同客户端。我的目标是拥有不同的日志文件,每个客户端一个。我的Nlog配置是:C# NLog重命名旧文件更改原始文件名,c#,asp.net,.net,logging,nlog,C#,Asp.net,.net,Logging,Nlog,我正在局域网环境中的Asp.net framework应用程序中使用Nlog。 我有10个使用该应用程序的不同客户端。我的目标是拥有不同的日志文件,每个客户端一个。我的Nlog配置是: <target name="LogFile" xsi:type="File" fileName="D:\logs\${var:idClient}.txt" keepFileOpen="true"
<target name="LogFile"
xsi:type="File"
fileName="D:\logs\${var:idClient}.txt"
keepFileOpen="true"
archiveFileName="D:\logs\Old\${var:idClient}_{#}.txt"
archiveDateFormat="yyyyMMdd"
archiveNumbering="Date"
archiveEvery="Day"
layout="${var:idClient}|${longdate}|${level:uppercase=true}|${callsite:fileName=false:includeSourcePath=false}|${message}"/>
</targets>
我的问题是,旧文件名与原始日志文件的客户端id不同。如何保持相同的客户端id并仅添加数据
谢谢。NLog配置变量是整个应用程序的全局变量。为每个请求修改它们不是一个好主意,除非您承诺一次只能有一个请求 请考虑将NuGET包添加到项目中,并更改文件集以使用该文件名布局:
你好,Luke,“旧文件名”和“原始日志文件”是什么?试着更好地解释你的问题,也许用一个例子来帮助社区帮助你
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
string idClient= string.Empty;
if (context.Session == null || context.Session["ClientId"] == null ||
string.IsNullOrEmpty(context.Session["ClientId"].ToString()))
idClient= "Client ID Default";
else
idClient= System.Web.HttpContext.Current.Session["ClientId"]?.ToString();
NLog.LogManager.Configuration.Variables["idClient"] = idClient;
}