Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在nlog.config中设置debugEnabled/InfoEnabled_C#_Configuration_Nlog - Fatal编程技术网

C# 如何在nlog.config中设置debugEnabled/InfoEnabled

C# 如何在nlog.config中设置debugEnabled/InfoEnabled,c#,configuration,nlog,C#,Configuration,Nlog,我有NLog包的记录器, 我想在配置记录器文件中定义trace enable=true 我怎么做 我的NLog.config文件: <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ta

我有NLog包的记录器, 我想在配置记录器文件中定义trace enable=true

我怎么做

我的NLog.config文件:

   <?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <targets>
    <target name="logfile" xsi:type="File" fileName="file.txt" />
    <target name="logconsole" xsi:type="Console" />
  </targets>

  <rules>
    <logger name="*" maxlevel="Trace" minlevel="Trace" writeTo="logfile" />

  </rules>
</nlog>

您可以通过在NLog.config的
规则
部分中设置
minLevel
属性来实现这一点,如下所示

<rules>
  <logger name="*" minlevel="Debug" writeTo="CSVFile" />
</rules>
要只记录特定的中间级别,请将
minLevel
maxLevel
一起使用,如下所示:

<rules>
  <logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="CSVFile" />
</rules>

并且只有跟踪文本显示在控制台窗口中。但是需要注意的是,配置文件中的XML必须正确格式化。上面的示例按照我在这里的测试应用程序中的描述工作。

您可以通过在NLog.config的
规则
部分中设置
minLevel
属性来实现这一点

<rules>
  <logger name="*" minlevel="Debug" writeTo="CSVFile" />
</rules>
要只记录特定的中间级别,请将
minLevel
maxLevel
一起使用,如下所示:

<rules>
  <logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="CSVFile" />
</rules>

并且只有跟踪文本显示在控制台窗口中。但是需要注意的是,配置文件中的XML必须正确格式化。上面的示例按照我在这里的测试应用程序中所述的方式工作。

您可以通过创建多个日志记录程序来创建多个日志记录级别,例如

 <rules>
  <!-- add your logging rules here -->
  <!-- different logger instances for different environments, no levels are mentioned explicitly, can be done if exclusion of some levels is required -->
  <logger name="Log.Dev" minlevel="Debug" writeTo="database" enabled="true" />
  <logger name="Log.Staging" minlevel="Info" writeTo="database" enabled="true" />
  <logger name="Log.Production" minlevel="Error" writeTo="database" enabled="true" />
</rules>

然后在初始化时给出要初始化的记录器的名称

        /// <summary>
    /// The log. 
    /// Getting Logger instance from key name defined in Web.config of main web file. Key name is LoggerInstanceName
    /// On the basis of name , logger instance and defined rules can be switched from one to another.
    /// </summary>
    private static readonly NLog.Logger Log = LogManager.GetLogger(Convert.ToString(ConfigurationManager.AppSettings.Get("LoggerInstance")));
//
///日志。
///从主Web文件的Web.config中定义的键名获取记录器实例。密钥名为LoggerInstanceName
///根据名称,记录器实例和定义的规则可以从一个切换到另一个。
/// 
私有静态只读NLog.Logger Log=LogManager.GetLogger(Convert.ToString(ConfigurationManager.AppSettings.Get(“LoggerInstance”));
另外,不要忘记在应用程序设置中添加密钥

<appSettings>
<!--logger instance name-->
<add key="LoggerInstanceName" value="Log.Dev" />
</appSettings>

您可以通过创建多个记录器安装来创建多个日志级别,例如

 <rules>
  <!-- add your logging rules here -->
  <!-- different logger instances for different environments, no levels are mentioned explicitly, can be done if exclusion of some levels is required -->
  <logger name="Log.Dev" minlevel="Debug" writeTo="database" enabled="true" />
  <logger name="Log.Staging" minlevel="Info" writeTo="database" enabled="true" />
  <logger name="Log.Production" minlevel="Error" writeTo="database" enabled="true" />
</rules>

然后在初始化时给出要初始化的记录器的名称

        /// <summary>
    /// The log. 
    /// Getting Logger instance from key name defined in Web.config of main web file. Key name is LoggerInstanceName
    /// On the basis of name , logger instance and defined rules can be switched from one to another.
    /// </summary>
    private static readonly NLog.Logger Log = LogManager.GetLogger(Convert.ToString(ConfigurationManager.AppSettings.Get("LoggerInstance")));
//
///日志。
///从主Web文件的Web.config中定义的键名获取记录器实例。密钥名为LoggerInstanceName
///根据名称,记录器实例和定义的规则可以从一个切换到另一个。
/// 
私有静态只读NLog.Logger Log=LogManager.GetLogger(Convert.ToString(ConfigurationManager.AppSettings.Get(“LoggerInstance”));
另外,不要忘记在应用程序设置中添加密钥

<appSettings>
<!--logger instance name-->
<add key="LoggerInstanceName" value="Log.Dev" />
</appSettings>


我只需要跟踪,所有级别都有Default@user1012506,我已经更新了答案,只需在
Trace
level上登录。谢谢,我在问题中添加了NLog.config,而不是working@user1012506,它工作得很好。然而,我已经用我在本地工作的一个测试应用程序的细节更新了我的答案Default@user1012506,我已经更新了答案,只需在
Trace
level上登录。谢谢,我在问题中添加了NLog.config,而不是working@user1012506,它工作得很好。然而,我已经用我在本地工作的测试应用程序的细节更新了我的答案。