惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
T
The Blog of Author Tim Ferriss
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
量子位
I
InfoQ
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
V
V2EX
腾讯CDC
P
Proofpoint News Feed
A
About on SuperTechFans
爱范儿
爱范儿
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI

博客园 - ssnice

AI使用总结 常见问题汇总 mysql出现 You can't specify target table 'xx' for update in FROM clause 0.000 sec 常见linux命令 sqlserver 定时自动备份 sqlserver 常见语法 mysql 常用命令(linux) mysql 连接数 最大并发数 windows mysql 主从同步 mysql基础语法 windows mysql8 安装 VS2022安装后,使用VS2019打开项目,出现无法找到.NET SDK的问题解决 Asp .Net Mvc5 缓存 DataBase First创建数据库 OpenXML_导入Excel到数据库 Linq/List/Array/IEnumerable等集合操作 js中substring/substr和C#中Substring的用法 Code First研究学习2_基本的错误及解决方法 C#中静态构造函数含义及使用
nlog
ssnice · 2021-11-20 · via 博客园 - ssnice

Nlog日志框架,支持.Net与.Net Core

一.在Asp Net Mvc中使用步骤

1.Nuget安装包 NLog与NLog.Config

2.安装完成后,目录下会生成Nlog.config与Nlog.xsd文件

3.新建一个Config文件夹,将两个文件放到此文件夹下,如下图

4.在web.config中配置如下节点

<configuration>
   <configSections>
     <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
   </configSections>
   <nlog>
     <include file="${basedir}/Config/NLog.config" /><!--包含文件 此处配置为前面引用NLog时添加的NLog.config文件-->
   </nlog>
 </configuration>

5.将Nlog.config设置为 如果较新则复制 或 始终复制

6.封装NLog

class Logger
    {
        NLog.Logger logger;

        private Logger(NLog.Logger logger)
        {
            this.logger = logger;
        }

        public Logger(string name)
            :this(NLog.LogManager.GetLogger(name))
        {
        }

        public static Logger Default { get; private set; }
        static Logger()
        {
            Default = new Logger(NLog.LogManager.GetCurrentClassLogger());
        }

        public void Debug(string msg, params object[] args)
        {
            logger.Debug(msg, args);
        }

        public void Debug(string msg, Exception err)
        {
            logger.Debug(msg, err);
        }

        public void Info(string msg, params object[] args)
        {
            logger.Info(msg, args);
        }

        public void Info(string msg, Exception err)
        {
            logger.Info(msg, err);
        }

        public void Trace(string msg, params object[] args)
        {
            logger.Trace(msg, args);
        }

        public void Trace(string msg, Exception err)
        {
            logger.Trace(msg, err);
        }

        public void Error(string msg, params object[] args)
        {
            logger.Error(msg, args);
        }

        public void Error(string msg, Exception err)
        {
            logger.Error(msg, err);
        }

        public void Fatal(string msg, params object[] args)
        {
            logger.Fatal(msg, args);
        }

        public void Fatal(string msg, Exception err)
        {
            logger.Fatal(msg, err);
        }
    }
Logger.Default.Debug("出现异常了!",e)

8.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">
	<targets>
		<!--屏幕打印消息-->
		<target name="console" xsi:type="ColoredConsole"
                        layout="${date:format=HH\:mm\:ss}> ${message}"/>

		<!--VS输出窗口-->
		<target name="debugger" xsi:type="Debugger"
                        layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}" />

		<!--保存至文件-->
		<target name="error_file" xsi:type="File" encoding="utf-8" maxArchiveFiles="10"
                        fileName="${basedir}/Logs/${shortdate}_log.txt"
                        layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
	</targets>
	<rules>
		<!--<logger name="*" writeTo="console" />-->
		<logger name="*" minlevel="Debug" writeTo="debugger" />
		<logger name="*" minlevel="Info" writeTo="error_file" />
	</rules>
</nlog>

二.在Asp Net Core Mvc/Webapi 中使用步骤

1.在web运行目录中添加Nuget包引用 NLog.Web.AspNetCore

2.在Program.cs文件Main方法中添加配置

NLog.Web.NLogBuilder.ConfigureNLog("Config/nlog.config");   //主意:这里的路径是nlog.config的路径

3.使用方法【借助上面 封装NLog】

Logger.Default.Debug("出现异常了!",e)