【发布时间】:2011-12-08 07:29:06
【问题描述】:
我正在编写一个 ASP .NET MVC3 应用程序,由于应用程序应该是安全的,我需要一个良好的企业应用程序日志架构。
所以我在寻找现有的登录框架并选择了NLog。所以在他们那一刻,我坚持为日志制作数据库架构。
有人在这方面有很好的经验吗?预计会记录一组操作,例如用户与系统对象的交互、后台工作、用户成员操作、支付交易等。
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-mvc-3 nlog
我正在编写一个 ASP .NET MVC3 应用程序,由于应用程序应该是安全的,我需要一个良好的企业应用程序日志架构。
所以我在寻找现有的登录框架并选择了NLog。所以在他们那一刻,我坚持为日志制作数据库架构。
有人在这方面有很好的经验吗?预计会记录一组操作,例如用户与系统对象的交互、后台工作、用户成员操作、支付交易等。
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-mvc-3 nlog
我使用 NLog 已经有一段时间了,我对它非常满意。我最喜欢 NLog 的地方在于您可以配置不同的日志级别以写入不同的文件和/或数据库。这是一个非常强大的日志库。
要记录到数据库,您可以在配置中使用如下所示的内容。这类似于我在我工作的公司使用的。
<target xsi:type="Database"
name="TestDatabaseLogging"
connectionString="Data Source=127.0.0.1;Initial Catalog=NLog_Test;User ID=MyLogin;Password=MyPassword"
dbDatabase="NLog_Test">
<commandText>
insert into INNO_LOG ([createDate], [Origin], [LogLevel], [Message], [Exception], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @exception, @stackTrace)
</commandText>
<parameter name="@createDate" layout="${date}"/>
<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>
您可以使用规则部分将不同级别记录到不同的文件中,请参见下面的示例;
<rules>
<logger name="*" minlevel="Fatal" writeTo="mail" />
<logger name="*" minlevel="Error" writeTo="TestDatabaseLogging" />
<logger name="*" minlevel="Debug" writeTo="file-debug" />
<logger name="*" minlevel="Info" writeTo="file" />
<!--Log to specific files for specific classes.-->
<logger name="_Default" minlevel="Trace" writeTo="file-default" />
<logger name="TestClass" minlevel="Trace" writeTo="file-testclass" />
</rules>
编辑:为记录信息添加了可能的表格布局。
Id | int
CreateDate | datetime
LogLevel | nvarchar
Message | nvarchar(max)
Exception | nvarchar(max)
StackTrace | nvarchar(max)
SourceUrl | nvarchar(255)
UserId | uniqueidentifier
OrderId | int
上面的布局只是一个粗略的想法。这完全取决于您要在此表中登录的内容。尽管您必须尝试是否可以添加除 NLog 默认使用的参数之外的其他参数。
【讨论】: