.Net6 web API (Log日志)

news/2024/11/17 23:45:19/文章来源:https://www.cnblogs.com/yf-html/p/18199936

前言

需要给项目打上日志 可以查询哪里的信息

 

下面是步骤

注意:不能允许没有任何监控的系统上线
如何监控---日志记录
需要日志信息的持久化-保存到文件中,保存到数据库中;
11.11og4net日志记录
1、Nuget引l入程序包Log4net+Microsoft.Extensions.Logging.Log4Net.AspNetcore
2、准备配置文件【设置为始终复制】
3、植入1og4net
builder.Logging.AddLog4Net("cfgFile/log4net.Config");

 

代码新建一个

LoggingController.cs 控制器

using Microsoft.AspNetCore.Mvc;
using yanfanNet6WebApi.Utility.Swagger;namespace yanfanNet6WebApi.Controllers;/// <summary>
/// 文件资源
/// </summary>
[ApiController]
[ApiVersion("1.0")]
[Route("[controller]/v{version:apiVersion}")]
public class LoggingController : ControllerBase
{private readonly ILogger<LoggingController> _logger;public LoggingController(ILogger<LoggingController> logger){_logger = logger;}/// <summary>/// 获取日志信息/// </summary>/// <returns></returns>
    [HttpGet]public IActionResult GetLog(){_logger.LogInformation("====Get APi 被调用======");return new JsonResult(new ApiResult<string>(){Success = true,Data = "日志记录",});}}internal class ApiResult<T>
{public ApiResult(){}public bool Success { get; set; }public string Message { get; set; }public string Data { get; set; }
}

 

 

 这个日志可以在官网上下载

https://logging.apache.org/log4net/release/config-examples.html

OK 我把代码放出来

<?xml version="1.0" encoding="utf-8"?>
<!--<configuration>
</configuration>-->
<log4net><!-- Define some output appenders --><appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"><filer value="log4\log.txt"/><!--追加日志内容--><appendToFile value="true"/><!-- 防止多线程时不能写Log,官方说线程非安全--><lockingModel type="log4net.Appender.FileAppender+MinimalLock"/><!--可以为:OnceSize DateComposite--><!--Composite为Size和Date的组合--><rollingStyle value="Composite" /><!--当备份文件时,为文件名加的后缀--><datePattern value="yyyyMMdd.TXT" /><!--日志最大个数,都是最新的--><!--rollingStyle节点为Size时,只能有value个日志--><!--rollingStyle节点为Composite时,每天有value个日志--><maxSizeRollBackups value="20"/><!--可用的单位:KBMBGB--><maximumFileSize value="3MB"/><!--置为true,当前最新日志文件名永远为file节中的名字--><staticLogFileName value="true" /><!--输出级别在INFO和ERROR之间的日志--><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ALL"/><param name="LevelMax" value="FATAL"/></filter><layout type="log4net.Layout.PatternLayout"><!--每一行日志输出格式--><conversionPattern value="%date [%thread] (%file:%line) %-5level %logger - %message%newline" /></layout></appender><!--SqlServer形式--><!--SqlServer形式--><appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender"><!--日志缓存写入条数设置为0时只要有一条就立刻写到数据库--><bufferSize value="0" /><connectionType value="System.Data.SqlClient.SqlConnection, System.Data.SqlClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /><connectionString value="Data source=[database server];initial catalog=LogManager;integrated security=false;persist security info=True;User ID=[sa];Password=[password]" /><commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /><parameter><parameterName value="@log_date" /><dbType value="DateTime" /><layout type="log4net.Layout.RawTimeStampLayout" /></parameter><parameter><parameterName value="@thread" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%thread" /></layout></parameter><parameter><parameterName value="@log_level" /><dbType value="String" /><size value="50" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%level" /></layout></parameter><parameter><parameterName value="@logger" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%logger" /></layout></parameter><parameter><parameterName value="@mess  age" /><dbType value="String" /><size value="4000" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message" /></layout></parameter><parameter><parameterName value="@exception" /><dbType value="String" /><size value="2000" /><layout type="log4net.Layout.ExceptionLayout" /></parameter></appender><root><!--控制级别,由低到高:ALLDEBUGINFOWARNERRORFATALOFF--><!--OFF:0--><!--FATAL:FATAL--><!--ERROR:ERROR,FATAL--><!--WARN:WARNERROR,FATAL--><!--INFO:INFO,WARN.ERROR,FATAL--><!--DEBUG:TNFO.WARN.ERROR.FATAL--><!--ALL:DEBUG,INFO,WARN,ERROR,FATAL--><priority value="ALL"/><level value="INFo"/><appender-ref ref="rollingAppender"/><!--数据库的日志--><!--       <appender-ref ref="AdoNetAppenderSqlServer" />--></root>
</log4net>
View Code

 

然后就是引入依赖

Nuget引l入程序包Log4net+Microsoft.Extensions.Logging.Log4Net.AspNetcore

 

 

 

 

然后加载完毕就好了,

设置成始终复制

然后在重新生成

 然后

在目录下会看到这个

 

然后需要在配置

 builder.Logging.AddLog4Net("cfgFile/log4net.Config");

 

OK 然后运行

 

然后在你的目录下就看到这个日志了OK 等会再说连接数据库的 

 

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

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

相关文章

给github新增讨论功能

给github新增讨论功能给github新增讨论功能 giscus讨论功能说明 https://giscus.app/zh-CN giscus GitHub https://github.com/giscus/giscus/blob/main/README.zh-CN.md网站:http://shibowl.topgithub:https://github.com/hanbinjxnc博客园:https://www.cnblogs.com/hool 博…

BUUCTF-WEB(4-8)

[ACTF2020 新生赛]Include 打开题目,是一个超链接,点击后,发现URL发生了变化可以看出是文件包含,包含了一个flag.php的文件 我们试着访问/etc/passwd我又试了试伪协议,显然是被过滤了然后我们就访问了一下nginx的日志,访问成功 ?file=/var/log/nginx/access.log那我们就…

CentOS配置静态IP

CentOS配置静态IP1.查看虚拟机使用的网络连接方式2.查看虚拟机的网络连接方式IP3.1.CentOS6.8之前IP配置方法 打开系统输入setup,进入文本模式设置工具进入网络配置模式进入网络配置模式过后在进入设置配置,选项eth0网卡进入配置静态IP关闭DHCP,在静态IP,子网掩码和默认网关…

贝叶斯推断架构实现

本文用于记录贝叶斯框架原理和架构实现方案贝叶斯推断基础 贝叶斯方法提出了一个概率框架来描述如何将新的观察结果整合到决策过程中。传统的贝叶斯推断的二进制算术结构中,后验概率的计算需要大量的乘、除、加。 先验概率(由历史求因):根据以往经验和分析得到的概率,观测…

电子公文传输系统安全-进展一

上周任务完成情况每人撰写并提交一份读书笔记 小组撰写并提交一份加固计划书、一份安全性设计方案 小组撰写并提交一份系统安全设计报告 小组讨论原公文传输系统的问题不足和改进方向 小组讨论新公文传输系统的修改方案和预期效果 每人自行学习国密标准、算法知识和设计方法原公…

存储监控软件stor2rrd

stor2rrd Stor2rrd是一种开源软件工具,用于监视和报告性能存储系统,SAN开关, 和局域网开关. 它由捷克公司Xorux开发;该工具支持来自主要存储供应商的企业级存储设备;例如:IBM、Dell EMC、NetAPP、HPE、Hitachi、Lenovo、Pure Storage、Huawei、Dot Hill、INFINIDAT、Fuji…

AtCoder Beginner Contest 354

rating++A - Exponential Plant (abc354 A) 题目大意 某星球上的植物,初始高\(0\),然后每天依次增长 \(1,2,4,8,...\),问哪天就高过身高为\(h\)的高桥。 解题思路 因为是指数级别长高,枚举一下天数即可,由于\(h \leq 10^9\),因此天数不会超过 \(32\)天。神奇的代码 #incl…

鸿蒙HarmonyOS实战-Stage模型(开发卡片页面)

🚀一、开发卡片页面 HarmonyOS元服务卡片页面(Metaservice Card Page)是指在HarmonyOS系统中,用于展示元服务的页面界面。元服务是指一组提供特定功能或服务的组件,例如天气服务、音乐播放服务等。元服务卡片页面可以显示元服务的相关信息和操作选项,用户可以通过点击卡…

连接池设计与实现一——以Golang Http1.1为例

0. 前言 连接池是一个非常重要的开发思想,如http client会构建连接池复用底层TCP连接,使用database/sql的使用也会有连接池的配置。那么代码底层是如何实现连接池的呢?这篇文档将以Golang语言为基础,分析http1.1连接池底层实现 ★ 注意:我们仅仅关注连接池设计思想、以及关…

Spring 面向切面编程AOP 详细讲解

1. Spring 面向切面编程AOP 详细讲解 @目录1. Spring 面向切面编程AOP 详细讲解每博一文案2. AOP介绍说明2.1 AOP的七大术语2.2 AOP 当中的 切点表达式3. 使用Spring 对 AOP 的实现使用3.1 准备工作3.2 Spring 基于AspectJ的AOP注解式开发3.2.1 实现步骤3.2.2 各个通知类型的说…

vulnhub - NYX: 1

标准攻击链vulnhub - NYX: 1 描述 这是一个简单的盒子,非常基本的东西。 它是基于vmware的,我不知道它是否可以在VB上运行,如果你愿意的话可以测试一下。 /home/$user/user.txt 和 /root/root.txt 下有 2 个标志。 信息收集 NYX靶ip:192.168.157.159 nmap -sT -sV -sC -O -p…

Vue3学习之项目工程初步了解

1.介绍项目工程,如在vscode中下图