ASP.NET Core -NLog

news/2024/11/15 10:06:38/文章来源:https://www.cnblogs.com/sugarwxx/p/18305578

1.安装NuGet包

2.准备Nlog的配置文件 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"autoReload="true"throwExceptions="false"internalLogLevel="Info" internalLogFile="internal-nlog.txt"><!-- 定义日志输出目标 --><targets><target name="FileError" xsi:type="File"  fileName="${basedir}/Logs/Error/${var:logfilename}_Error.txt"layout="${longdate} ${level:uppercase=true} ${message} ${exception}" archiveEvery="Day" archiveAboveSize="240" maxArchiveFiles="20" archiveFileName="${basedir}/Log/Error/${var:logfilename}_Error.{#}.txt" /><target name="FileWarn" xsi:type="File" fileName="${basedir}/Logs/Warn/${var:logfilename}_Warn.txt" layout="${longdate} ${message}"archiveEvery="Day" archiveAboveSize="240" maxArchiveFiles="20" archiveFileName="${basedir}/Log/Warn/${var:logfilename}_Warn.{#}.txt" /><target name="FileInfo" xsi:type="File" fileName="${basedir}/Logs/Info/${var:logfilename}_Info.txt" layout="${longdate} ${message}"archiveEvery="Day" archiveAboveSize="240" maxArchiveFiles="20" archiveFileName="${basedir}/Log/Info/${var:logfilename}_Info.{#}.txt" /><target name="FileDebug" xsi:type="File" fileName="${basedir}/Logs/Debug/${var:logfilename}_Debug.txt" layout="${longdate} ${message}"archiveEvery="Day" archiveAboveSize="240" maxArchiveFiles="20"  archiveFileName="${basedir}/Log/Debug/${var:logfilename}_Debug.{#}.txt"/></targets><!-- 定义日志规则 --><rules><logger name="*" minlevel="Error" maxlevel="Fatal" writeTo="FileError" /><logger name="*" minlevel="Warn" maxlevel="Warn" writeTo="FileWarn" /><logger name="*" minlevel="Info" maxlevel="Info" writeTo="FileInfo" /><logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="FileDebug" /></rules>
</nlog>

 

 3.添加注入NLog服务的扩展

 private static string LogPath{get{return Path.Combine(AppContext.BaseDirectory, "nlog.config");}}public static ILoggingBuilder AddNLog(this ILoggingBuilder log,string? filename=null){//删除其他的日志记录提供程序
     log.ClearProviders();LogManager.Configuration.LogFactory.Setup().LoadConfigurationFromFile(LogPath);LogManager.Configuration.Variables["logfilename"] = filename;//启用NLog作为日志记录的提供程序
     log.AddNLogWeb(LogManager.Configuration);return log;}

 

4.Program.cs注入NLog服务

//日志
builder.Logging.AddNLog();

 

5.使用

[ApiController]
[Route("[controller]")]
public class UserController(ILogger<UserController> logger) : ControllerBase
{[HttpGet("GetUserExit")]public void GetUserExit(string account){logger.LogInformation("调用方法->GetUserExit");}
}

 

针对无法使用构造函数依赖注入使用日志的,建立如下Helper

public class LogHelper
{private static string logPath{get { return Path.Combine(AppContext.BaseDirectory, "nlog.config"); }}private static ISetupBuilder _factory = LogManager.Configuration.LogFactory.Setup().LoadConfigurationFromFile(logPath);private static Logger _logger = null;/// <summary>/// 日志操作对象/// </summary>public static Logger Log{get{if (_logger == null) _logger = _factory.LogFactory.GetCurrentClassLogger();return _logger;}}}

如在Program中调用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/745269.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea中项目树中展示在java类的成员方法,变量

如图所示,点击齿轮,勾选show Members即可

购买一台云服务器,安装nvm,能够将配置全局命令链接js文件执行

全局安装@vue/cli为什么会添加命令vue linux或者MAC系统中通过which vue查看vue地址,通过进入该地址查看文件发现软链接指向真实文件,真实文件同级别下的package.json中的bin字段中的名决定了输入命令vue 2.全区安装@vue/cli时将包放在了node安装位置的node_modules下并且在包…

欢喜就好 人生短短

欢喜就好 人生短短

解决方案 | listary 双击ctrl不生效,不启动搜索工具条 (困扰了我2天,终于解决)

一、问题描述 快捷键设置是正常的,但是双击ctrl不生效,不启动搜索工具条。(其实是大屏幕不显示,我一直盯着大屏幕,没看笔记本;本方法适用于同时使用笔记本和显示器) 解决思路来源 二、解决方法只需要把接着笔记本的hdmi线路拔掉 重插,然后再重新启动listary即可正常在…

宁盾杯-哇海贼王

哇海贼王 解压,2个压缩包1张图片图片打开发现尾端异常,疑似解压密码MV9DUkNfSVNfMl9GVU5OWV82NjYjCg== 解码得 1_CRC_IS_2_FUNNY_666#使用该密码解压flag1.zip,成功得到flag.zip 根据提示使用crc暴破获取key,解密flag2.zip拼图得flagREFTQ1RGezkxY2VkZjl2N2Q5ODI4MTA5YzkwZ…

哇海贼王

哇海贼王 解压,2个压缩包1张图片图片打开发现尾端异常,疑似解压密码MV9DUkNfSVNfMl9GVU5OWV82NjYjCg== 解码得 1_CRC_IS_2_FUNNY_666#使用该密码解压flag1.zip,成功得到flag.zip 根据提示使用crc暴破获取key,解密flag2.zip拼图得flagREFTQ1RGezkxY2VkZjl2N2Q5ODI4MTA5YzkwZ…

2024-07-17:用go语言,给定一个整数数组nums, 我们可以重复执行以下操作: 选择数组中的前两个元素并删除它们, 每次操作得到的分数是被删除元素的和。 在保持所有操作的分数相同的前提下,

2024-07-17:用go语言,给定一个整数数组nums, 我们可以重复执行以下操作: 选择数组中的前两个元素并删除它们, 每次操作得到的分数是被删除元素的和。 在保持所有操作的分数相同的前提下, 请计算最多能执行多少次操作。 返回可以进行的最大操作次数。 输入:nums = [3,2,1…

自动填充验证码,懒人福音,对视觉障碍的朋友太友善了

自动填充验证码,懒人福音,对视觉障碍的朋友太友善了 一、安装插件Tampermonkey油猴(篡改侯)脚本插件 https://www.tampermonkey.net/ 这个怎么安装就不详细介绍了 二、安装验证码解析脚本 https://greasyfork.org/zh-CN/scripts/418942-万能验证码自动输入-升级版点击进去直接…

在 Kubernetes 上部署 llama3

转自:https://zhuanlan.zhihu.com/p/695534674 Ollama 与 OpenWebUI 介绍 Ollama 是一个运行大模型的工具,可以看成是大模型领域的 Docker,可以下载所需的大模型并暴露 API。 OpenWebUI 是一个大模型的 Web UI 交互工具,支持 Ollama,即调用 Ollama 暴露的 API 实现与大模型…

ubuntu22.04安装idea2024

1.现有电脑简介系统版本:ubuntu22.04 Desktop java版本: openjdk 212.软件部署在官网下载idea软件包,解压并移动到/opt目录,重命名为idea 寻找合适的学习版工具,解压应移动到/opt目录,重命名为ja-netfilter2.1.修改idea vmoptions文件 # 修改/opt/idea/bin/idea64.vmoptio…

手把手教你基于华为云鲲鹏弹性云服务器部署Node.js环境

本文带大家使用华为KooLabs云实验平台,基于华为云鲲鹏弹性云服务器安装、部署、测试Node.js项目。本文分享自华为云社区《华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】》,作者:江湖有缘。 一、本次实践介绍 1.1 实践环境简介 本次实践环境使用华为KooLabs云实…