标签: nlog

如何将NLog中的自定义字段记录到数据库中?

我目前在许多项目中使用NLog.在某些情况下,我登录到数据库.

这是我想做的事情:

CREATE TABLE [dbo].[NLogEntries](
  [Id] [bigint] IDENTITY(1,1) NOT NULL,
  [Origin] [nvarchar](100) NOT NULL,
  [LogLevel] [nvarchar](20) NOT NULL,
  [Message] [nvarchar](3600) NOT NULL,
  [CreatedOn] [datetime] NOT NULL,
  [OrderId] [int] NULL --Custom field!
)
Run Code Online (Sandbox Code Playgroud)

NLog.config和这个目标:

<target type="Database" name="database" connectionstring="Server=localhost;Database=NLog;Trusted_Connection=True;">
  <commandText>
    INSERT INTO NLogEntries ([Origin], [Message], [LogLevel],[CreatedOn],[OrderId]) VALUES (@Origin,@Message,@LogLevel,@Date, @OrderId);
  </commandText>
  <parameter name="@Date" layout="${date}"/>
  <parameter name="@Origin" layout="${callsite}"/>
  <parameter name="@LogLevel" layout="${level}"/>
  <parameter name="@message" layout="${message}"/>
  <parameter name="@OrderId" layout="${orderId}"/> <!-- custom field! -->
</target>
Run Code Online (Sandbox Code Playgroud)

然后记录这样的事情:

var logger = LogManager.GetCurrentClassLogger();
var orderId = 123;
logger.Debug("What is going …
Run Code Online (Sandbox Code Playgroud)

c# nlog

43
推荐指数
4
解决办法
4万
查看次数

使用NLog的ASP.NET Web API 2.1中的全局异常处理?

ASP.NET Web API 2.1包含一个新的全局错误处理功能.我发现了一个例子,演示了如何记录异常到ELMAH.但是我使用NLog将错误记录到数据库表中.是否可以使用NLog的Web API全局错误处理?如果是,请提供一个例子.

c# asp.net error-handling nlog asp.net-web-api

43
推荐指数
1
解决办法
2万
查看次数

NLog时间格式

如何编写NLog的布局,以毫秒为单位输出时间11:32:08:123?我用,${date:format=yyyy-MM-dd HH\:mm\:ss}但我的日志需要更多的时间精度.

nlog

41
推荐指数
3
解决办法
3万
查看次数

如何让NLog写入数据库

我正在尝试让NLog登录到我的数据库日志表但无济于事.我确定我的连接字符串是正确的,因为它与我的web.config中的其他地方一样.写出文件工作正常,所以我知道它不仅仅是NLog,而且必须是我做错了.以下是我的NLog配置:

<!-- NLOG CONFIGURATION -->
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
      <target name="file" xsi:type="File" fileName="${basedir}/logs/Log ${shortdate}.txt" layout="${longdate} ${callsite} ${level}: ${message} ${exception:format=Message,StackTrace} ${stacktrace}" />
      <target type="Database" name="database" connectionstring="MyConnectionString">
        <commandText>
          insert into MyLog ([CreateDate], [Origin], [LogLevel], [Message], [Exception], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @exception, @stackTrace);
        </commandText>
        <parameter name="@createDate" layout="${longdate}"/>
        <parameter name="@origin" layout="${callsite}"/>
        <parameter name="@logLevel" layout="${level}"/>
        <parameter name="@message" layout="${message}"/>
        <parameter name="@exception" layout="${exception:format=Message,StackTrace}"/>
        <parameter name="@stackTrace" layout="${stacktrace}"/>
      </target>
    </targets>
    <rules>
      <logger name="*" writeTo="file"/>
      <logger name="*" appendTo="database"/>
      <!--<logger name="*" writeTo="mail" minlevel="Error"/>-->
    </rules>
  </nlog>
Run Code Online (Sandbox Code Playgroud)

c# web-config nlog

40
推荐指数
2
解决办法
2万
查看次数

我应该何时使用Tracing vs Logger.NET,Enterprise Library,log4net或Ukadc.Diagnostics?

如何在标准跟踪,Logger.NET,企业库,log4net或Ukadc.Diagnostics之间进行选择?

是否存在一个比另一个更合适的情况?那会是什么?(ASP.NET,控制台应用,Azure云,SOHO,企业...)

有什么好处或缺点?

我是否错过了其他主要的日志记录框架?

.net log4net enterprise-library system.diagnostics nlog

40
推荐指数
2
解决办法
2万
查看次数

x天后删除日志文件

我想使用文件目标登录Nlog,就像在这个例子中一样.如何在X几天之后删除文件而不归档它们?或者是否可以将文件存档到同一个文件夹?

logging nlog archive

40
推荐指数
3
解决办法
3万
查看次数

NLog:如何从特定规则中排除特定记录器?

在我的NLog配置中,我有一个全能记录器,但我创建的特定记录器非常垃圾,我希望它的输出转到它自己的文件.这一部分很简单,但是catch-all记录器也会收到垃圾邮件日志消息.如何告诉主记录器记录所有内容,但要排除垃圾记录器?

我正在使用NLog 2.0.

nlog

37
推荐指数
1
解决办法
1万
查看次数

以编程方式重新配置NLog

这是我第一次使用NLog软件包进行日志记录,但到目前为止,它非常适合使用.

在我的场景中,我需要以编程方式初始化我的NLog LoggingConfiguration设置,而不是通过更典型的配置文件方案.我已经对它进行了测试,并将其全部按照默认方式运行.但是,如何在运行时以编程方式修改我的设置?这里最常见的情况可能是默认情况下应用程序的日志记录级别设置为ERROR,但在特定模块中出现错误,我希望将日志记录级别切换为更加冗长以跟踪错误.我想编写一个小的Web界面,以便我可以在运行时轻松调整这些设置,但我想确保我采用正确的方法.

.net logging nlog

35
推荐指数
4
解决办法
3万
查看次数

如何通过电子邮件发送NLog记录的错误?

我第一次使用NLog,我想出了如何写入文本文件,但现在我想给自己发一封电子邮件.我假设您向NLog提供SMTP凭据.程序集调用System.Net.Mail命名空间并处理发送电子邮件.如果这是错的,请告诉我.如果您已经完成此操作之前我会感谢任何有关您完成发送电子邮件的信息.

以下是我的配置.

    <?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="C:\Users\keithb\Desktop\TestLog.txt" />-->
    <target name="Mail" xsi:type="Mail" html="true" subject="Error Received" body="${message}"         
         to="user2@someemaill.com"
         from="user@someemail.com"
         Encoding="UTF8"
         smtpUsername="user@someemail.com"
         enableSsl="False"
         smtpPassword="pa$$word"
         smtpAuthentication="Basic"
         smtpServer="mail.someemail.com"
         smtpPort="25" />
  </targets>
  <rules>
    <!--<logger name="*" minlevel="Debug" writeTo="logfile" />-->
    <logger name="*" level="Error" writeTo="Mail" />
    <logger name="*" level="Fatal" writeTo="Mail" />
  </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

我这样称呼错误

Imports NLog

Public Class HandleGetRouteInfo
    Private Shared logger As Logger = LogManager.GetCurrentClassLogger()

    Public Shared Function GetRouteInfo(ByVal routeInfo As RequestGetRouteInfo) As GetRouteInfoResponse
        'TODO: Check route ID, username, password …
Run Code Online (Sandbox Code Playgroud)

.net vb.net email nlog

34
推荐指数
1
解决办法
2万
查看次数

NLog LogException似乎忽略了异常

LogException或任何派生函数ErrorException等似乎完全忽略传入的异常参数.

我在nlog.config文件中缺少格式属性吗?我正在使用Nlog在VS中安装的模板中的样板.

我希望将异常对象和内部异常的信息添加到日志文件中.然而,添加到日志文件的唯一信息是传递给函数的字符串参数.

事实证明,这ErrorException()实际上没那么有用了Error()

我怎样才能获得更深入的报道.特别是Message所有内部属性的完全递归转储Exceptions

logging nlog exception-logging

33
推荐指数
2
解决办法
9426
查看次数