[转]log4net 发布到生产环境不写日志的解决方法--使用 NLog日志

本文介绍了如何使用NLog进行日志记录,并提供了详细的配置示例。包括如何配置日志级别、目标输出以及布局渲染器等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转自:http://www.cnblogs.com/weiweictgu/p/5848805.html

 

1、升级到log4net的最新版

PM下执行

Install-Package log4net

还是无法解决的,使用下面的方法

2、使用Nlog替换之,详见https://github.com/NLog/NLog/wiki/Tutorial

 安装

Install-Package NLog.Config 

 

NLog使用方法比log4net更为简单,配置文件如下,如果成windows程序需将NLog.config自动复制到bin下面

复制代码
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"  3  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  4  xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"  5  autoReload="true"  6  throwExceptions="false"  7  internalLogLevel="Off" internalLogFile="F:\temp\20160907\NLog\log\nlog-internal.log">  8  9 <!-- optional, add some variables 10  https://github.com/nlog/NLog/wiki/Configuration-file#variables 11 --> 12 <variable name="myvar" value="myvalue"/> 13 14 <!-- 15  See https://github.com/nlog/nlog/wiki/Configuration-file 16  for information on customizing logging rules and outputs. 17 --> 18 <targets> 19 20 <!-- 21  add your targets here 22  See https://github.com/nlog/NLog/wiki/Targets for possible targets. 23  See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers. 24 --> 25 26 <!-- 27  Write events to a file with the date in the filename. 28  <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" 29  layout="${longdate} ${uppercase:${level}} ${message}" /> 30 --> 31 <target name="logfile" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" /> 32 <target name="console" xsi:type="ColoredConsole" /> 33 </targets> 34 35 <rules> 36 <!-- add your logging rules here --> 37 38 <!-- 39  Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f" 40  <logger name="*" minlevel="Debug" writeTo="f" /> 41 --> 42 <logger name="*" minlevel="Debug" writeTo="logfile" /> 43 <logger name="*" minlevel="Info" writeTo="console" /> 44 </rules> 45 </nlog>
复制代码

调用代码:

复制代码
 1   Logger logger = LogManager.GetCurrentClassLogger();
 2 
 3 
 4             logger.Trace("Sample trace message");  5 logger.Debug("Sample debug message");  6 logger.Info("Sample informational message");  7 logger.Warn("Sample warning message");  8 logger.Error("Sample error message");  9 logger.Fatal("Sample fatal error message"); 10 11 12 logger.Info("wilson测试 日志日期:{0}", DateTime.Now);
复制代码

执行结果,非常漂亮的控制台输出:

 

web站点配置log写入到sql server数据库,需要安装NLog.Web

Install-Package NLog.Web

配置文件如下

复制代码
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"  3  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  4  xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"  5  autoReload="true"  6  throwExceptions="false"  7  internalLogLevel="Off" internalLogFile="F:\temp\20160907\NLog\log\nlog-internal.log">  8  9 <!-- optional, add some variables 10  https://github.com/nlog/NLog/wiki/Configuration-file#variables 11 --> 12 <variable name="myvar" value="myvalue"/> 13 14 <!-- 15  See https://github.com/nlog/nlog/wiki/Configuration-file 16  for information on customizing logging rules and outputs. 17 --> 18 <targets> 19 20 <!-- 21  add your targets here 22  See https://github.com/nlog/NLog/wiki/Targets for possible targets. 23  See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers. 24 --> 25 26 <!-- 27  Write events to a file with the date in the filename. 28  <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" 29  layout="${longdate} ${uppercase:${level}} ${message}" /> 30 --> 31 <target name="logfile" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" /> 32 <target name="console" xsi:type="ColoredConsole" /> 33 34 <target name="db" 35  xsi:type="Database" 36  connectionStringName="NLogConn" 37  commandType="StoredProcedure" 38  commandText="[dbo].[NLog_AddEntry_p]" 39 > 40 <parameter name="@machineName" layout="${machinename}" /> 41 <parameter name="@siteName" layout="${iis-site-name}" /> 42 <parameter name="@logged" layout="${date}" /> 43 <parameter name="@level" layout="${level}" /> 44 <parameter name="@username" layout="${aspnet-user-identity}" /> 45 <parameter name="@message" layout="${message}" /> 46 <parameter name="@logger" layout="${logger}" /> 47 <parameter name="@properties" layout="${all-event-properties:separator=|}" /> 48 <parameter name="@serverName" layout="${aspnet-request:serverVariable=SERVER_NAME}" /> 49 <parameter name="@port" layout="${aspnet-request:serverVariable=SERVER_PORT}" /> 50 <parameter name="@url" layout="${aspnet-request:serverVariable=HTTP_URL}" /> 51 <parameter name="@https" layout="${when:inner=1:when='${aspnet-request:serverVariable=HTTPS}' == 'on'}${when:inner=0:when='${aspnet-request:serverVariable=HTTPS}' != 'on'}" /> 52 <parameter name="@serverAddress" layout="${aspnet-request:serverVariable=LOCAL_ADDR}" /> 53 <parameter name="@remoteAddress" layout="${aspnet-request:serverVariable=REMOTE_ADDR}:${aspnet-request:serverVariable=REMOTE_PORT}" /> 54 <parameter name="@callSite" layout="${callsite}" /> 55 <parameter name="@exception" layout="${exception:tostring}" /> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值