asp.net mvc 简单使用 NLog

之前项目里面用的是Log4.net , 觉得配置文件挺复杂的。

新的这个项目里 , 我用了NLog ,本人菜鸟,写错请见谅。

首先引用Nuget 工具里面引入 NLog 和 Nlog config

引入之后 , 工程项目的引用里面会多了DLL和config文件

 

然后我们可以编辑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"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="d:\temp\nlog-internal.log">

  <!-- optional, add some variables
  https://github.com/nlog/NLog/wiki/Configuration-file#variables
  -->

  <variable name="fileFormat"
            value="${newline}date: ${date}
            ${newline}level: ${level}
            ${newline}logger: ${logger}
            ${newline}machinename: ${machinename}
            ${newline}message: ${message}
            ${newline}appdomain: ${appdomain}
            ${newline}assembly-version: ${assembly-version}
            ${newline}basedir: ${basedir}
            ${newline}callsite: ${callsite}
            ${newline}counter: ${counter}
            ${newline}nlogdir: ${nlogdir}
            ${newline}processid: ${processid}
            ${newline}processname: ${processname}
            ${newline}specialfolder: ${specialfolder}
            ${newline}stacktrace: ${stacktrace}
            ${newline}
            ${newline}" />

  <!--
  See https://github.com/nlog/nlog/wiki/Configuration-file
  for information on customizing logging rules and outputs.
  备注:maxArchiveFiles代表日志文件数量,如0,则无限制。
        archiveAboveSize代表日志文件大小 , 如1024是1KB。
   -->
  <targets>

    <!--
    add your targets here
    See https://github.com/nlog/NLog/wiki/Targets for possible targets.
    See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
    -->

    <!--
    Write events to a file with the date in the filename.
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate} ${uppercase:${level}} ${message}" />
    -->

    <target name="file" xsi:type="File"
         fileName="${basedir}/Logs/${date:format=yyyy-MM-dd}/${shortdate}.log"
         layout="${fileFormat}"
         maxArchiveFiles="0"
         archiveAboveSize="102400" />
    
  </targets>

  <rules>
    <!-- add your logging rules here -->

    <!--
    Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"
    这里的writeTo是上面target的名字
    <logger name="*" minlevel="Debug" writeTo="f" />
    -->

    <logger name="*" minlevel="Trace" writeTo="file"/>
    
  </rules>
</nlog>

可以看到最注意的内容就是 : file Format (日志内容格式) 和 file target (日志文件存放地方)

做好了config配置以后,可以写一个共用的类,如

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace ClassLibraryCommonHelp
{
    public class LogHelp
    {
        private static NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();

        public static void Trace(string strMsg)
        {
            _logger.Trace(strMsg);
        }

        public static void Debug(string strMsg)
        {
            _logger.Debug(strMsg);
        }

        public static void Info(string strMsg)
        {
            _logger.Info(strMsg);
        }

        public static void Warn(string strMsg)
        {
            _logger.Warn(strMsg);
        }

        public static void Error(string strMsg)
        {
            _logger.Error(strMsg);
        }

        public static void Fatal(string strMsg)
        {
            _logger.Fatal(strMsg);
        }

    }






}

有了LogHelp就可以在记录catch exception内容了 。

也可以用于记录info 等。

 

            try
            {
                for (int i = 1; i < 1000; i++) {
                    LogHelp.Info("count" + i);
                }

                DateTime dd = DateTime.Parse("aaaaaa");//error 
            }
            catch (Exception ex)
            {
                LogHelp.Error(ex.Message);
            }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 .NET Core 控制台应用中使用 NLog,需要进行以下步骤: 1. 安装 NLog 包。您可以在 NuGet 包管理器中搜索 NLog 并安装它,或使用命令行: ``` dotnet add package NLog ``` 2. 在项目根目录下创建一个名为 `nlog.config` 的文件,并将以下配置复制到文件中,以启用NLog: ```xml <?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" autoReload="true" internalLogLevel="Trace" internalLogFile="c:\temp\nlog-internal.log"> <targets> <target name="file" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" /> </targets> <rules> <logger name="*" minlevel="Trace" writeTo="file" /> </rules> </nlog> ``` 这样,NLog 就会将日志写入到当前应用程序目录下的 `logs` 文件夹中,并将日志文件名设置为当前日期。 3. 在应用程序入口点中,添加 NLog 配置和日志记录: ```csharp using NLog; using NLog.Config; using NLog.Targets; class Program { static void Main(string[] args) { // 加载NLog配置 LogManager.LoadConfiguration("nlog.config"); // 创建logger var logger = LogManager.GetCurrentClassLogger(); // 记录日志 logger.Info("Hello, NLog!"); // 等待用户按下任意键退出 Console.ReadKey(); } } ``` 这样就可以在控制台应用程序中使用 NLog 记录日志了。如果您需要更多的日志记录选项,可以参考 NLog 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值