首页 > 其他分享 >.Net6 web API (Log日志)

.Net6 web API (Log日志)

时间:2024-05-18 23:30:46浏览次数:32  
标签:set Logging Log public OK API Net6 日志 logger

前言

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

 

下面是步骤

注意:不能允许没有任何监控的系统上线
如何监控---日志记录
需要日志信息的持久化-保存到文件中,保存到数据库中;
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 等会再说连接数据库的 

 

标签:set,Logging,Log,public,OK,API,Net6,日志,logger
From: https://www.cnblogs.com/yf-html/p/18199936

相关文章

  • Weblogic T3反序列化漏洞(CVE-2018-2628)
    目录前言T3协议概述漏洞复现修复方案前言WebLogicServer是一个企业级的应用服务器,由Oracle公司开发,支持完整的JavaEE规范,包括EJB、JSP、Servlet、JMS等,适合大型分布式应用和高负载场景。T3协议概述T3协议(Two-TierTCP/IPProtocol),是WebLogic中的一种专有协议,建立在TCP/IP协......
  • logstash
    遇到的问题:  环境: 配置:input{beats{port=>5044codec=>plain{charset=>"UTF-8"}}}filter{mutate{remove_field=>["host","input","@timestamp","ecs",......
  • apio2024 d1
    agc060E考虑刻画拓扑序。计数,计\(2^n\)个点的树的所有拓扑序中满足条件的树的个数。设\(f_n\)为:\(n\)层的满二叉树的拓扑序树,这可以通过递推得到。现在只看根到\(A\)与\(B\)的两条链,一边处理这两条链,一边插入其他子树。当放入某条链的第\(i\)个节点时,可以同时把它......
  • .Net6 web API (AOP理解--ResourceFilter)
    前沿Aop(AspectorientProgramming),面向切面编程,作为面向对象编程的一种补充,可以在不破坏之前的封装为基础动态增加一些功能;从而让系统更具备扩展性:增加一个缓存功能增加一个日志功能既希望不要违背开闭原则,也希望能够增加新的工能在之前的业务逻辑之前增加了逻辑,在之前......
  • HTML5中 drag 和 drop api
    被拖放元素--A,目标元素--B。dragstart事件主体是A,在开始拖放A时触发。dragend事件主体是A,在整个拖放操作结束时触发。drag事件主体是A,正在拖放A时触发(整个拖拽,drag事件会在被拖拉的节点上持续触发,相隔几百毫秒)。dragenter事件主体是B,在A进入某元素的时候触发。drago......
  • Use AOP to record system logs
    UsingAOPtoRecordSystemLogs:1.CustomAnnotationClassDefineacustomannotationclass:packagecom.java.common.annotion;importjava.lang.annotation.*;@Target({ElementType.METHOD,ElementType.PARAMETER})//Thisannotationappliestomethodsandp......
  • CnBlog by StarsTwinkle 更新日志
    从2024/5/16后的更新在这里标出。2024/5/16音乐播放器更新——增加曲目Teeth更新部分源代码:{name:'Teeth',artist:'5SecondsofSummer',url:'http://music.163.com/song/media/outer/url?id=1386002......
  • rust项目中通过log4rs将日志写入文件
    java项目中使用最广泛的日志系统应该是log4j(2)了。如果你也是一个Java程序员,可能在写rust的时候会想怎么能顺手地平移日志编写习惯到rust中来。log4rs就是干这个的。从名字就能看出来。将Java编程习惯代人rust不是一种好的方向,毕竟两种语言定位不同。不过单纯练手就无所谓了......
  • .Net6 web API (IOC容器内置)
    前沿内置I0C容器使用1.分层架构,上层调用下层12.具备抽象【接口和抽象类】和实现【普通类】3.注册抽象和具体之间的关系4.通过构造函数注入【内置容器仅支持构造函数注入】 IOC容器的主要作用是管理应用程序中的各种服务、组件和依赖关系,并在需要时将它们注入到其他组件......
  • windows 安装.net6core webapi
    windows安装.net6corewebapi:1.下载安装dotnet-hosting-6.0.0-win.exe(Windows HostingBundle--runtime)https://dotnet.microsoft.com/en-us/download/dotnet/6.02..netcorewebapi右键发布publish,复制发布的文件到windows服务器iis站点webapi3.启动windowspowersh......