【发布时间】:2012-09-07 14:32:23
【问题描述】:
我目前在很多项目中使用 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!
)
和带有这个目标的 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>
然后记录如下内容:
var logger = LogManager.GetCurrentClassLogger();
var orderId = 123;
logger.Debug("What is going on here", orderId);
有没有什么好的方法可以做到这一点并继续使用 NLog?或者当有这些要求时,我是否必须滚动自己的记录器并跳过 NLog?
【问题讨论】:
-
也许这会有所帮助:nlog-forum.1685105.n2.nabble.com/…
-
string.Format() 有什么问题?
-
Rich>> 你的意思是除了以后在日志文件中查询之外会很困难(需要拆分等)?我们拥有在不同字段中包含不同数据的关系数据库是有原因的。