【发布时间】:2020-05-13 10:00:27
【问题描述】:
我的 Nlog 配置文件中有以下目标
<targets>
<target name ="loggerCreatePortal" xsi:type="File"
fileName="c:/CRM Trace Logs/Portal2.0/${shortdate}_createPortalRegForm.log"
layout="${logger} | ${longdate} | ${level:uppercase=true} | ${message}"
createDirs="true"/>
<target name ="loggerCreateRegData" xsi:type="File"
fileName="c:/CRM Trace Logs/Portal2.0/${shortdate}_createPortalRegFormData.log"
layout="${logger} | ${longdate} | ${level:uppercase=true} | ${message}"
createDirs="true"/>
</targets>
<rules>
<logger name="loggerCreatePortal" minlevel="Debug" writeTo="createPortalRegForm"/>
<logger name="loggerCreateRegData" minlevel="Debug" writeTo="createPortalRegFormData"/>
</rules>
在我的主课中:
public class PortalController : ApiController
{
private static readonly Logger loggerCreatePortal = LogManager.GetLogger("loggerCreatePortal");
private static readonly Logger loggerCreateRegData = LogManager.GetLogger("loggerCreateRegData");
[HttpPost]
[Route("createPortalRegForm")]
public Response createPortalRegForm([FromBody] ExpressPoll expressPoll)
{
loggerCreatePortal.Info("Test 1");
IOrganizationService _orgService = CrmConnect.GetConnection();
...
}
[HttpPost]
[Route("createPortalRegFormData")]
public Response createPortalRegFormData([FromBody] FilledExpressPoll filledExpressPoll)
{
loggerCreateRegData.Info("Test 2");
IOrganizationService _orgService = CrmConnect.GetConnection();
...
}
我想将来自 CrmConnect 类的日志写入用于指定记录器的日志文件。如果应用调用路由 CreatePortalRegForm,则来自 CrmConnect 类的日志应仅写入目标 loggerCreatePortal 的文件中。
我的 CrmConnect 课程
public static class CrmConnect
{
private static readonly Logger loggerConn = LogManager.GetLogger("loggerConn");
public static IOrganizationService GetConnection()
{
....;
if (conn.IsReady)
loggerConn.Info("Conn successfull");
....
}
我需要在配置文件中添加什么目标或规则?
【问题讨论】:
-
您的记录器被称为
"loggerConn",并且您的记录器规则都不匹配该记录器名称。您是否尝试过修复 NLog.config 中的记录器规则? -
@RolfKristensen 嗨,目前我还没有为“loggerCon”配置规则。我的问题是我需要写什么规则才能得到我想要的
-
创建了一个答案,我已将
CrmConnect添加到记录器规则列表中。
标签: c# asp.net logging nlog nlog.config