首页 > 其他分享 >.net6 引用log4net记录日志

.net6 引用log4net记录日志

时间:2023-03-05 22:25:17浏览次数:49  
标签:log4net 配置文件 nuget 引用 net6 日志

第一步:nuget包引用
使用log4net 需要引用两个nuget包

1. Log4net
2. Microsoft.Extensions.Logging.Log4Net.AspNetCore

第二步:引用log4net的config配置文件 配置文件贴在下面了 需要自取

  

<?xml version="1.0" encoding="utf-8"?>

    
    <!--站点日志配置部分-->
    <log4net>
        <!-- Define some output appenders -->
        <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
            <file value="log4\log.txt" />
            <!--追加日志内容-->
            <appendToFile value="true" />

            <!--防止多线程时不能写Log,官方说线程非安全-->
            <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

            <!--可以为:Once|Size|Date|Composite-->
            <!--Composite为Size和Date的组合-->
            <rollingStyle value="Composite" />

            <!--当备份文件时,为文件名加的后缀-->
            <datePattern value="yyyyMMdd.TXT" />

            <!--日志最大个数,都是最新的-->
            <!--rollingStyle节点为Size时,只能有value个日志-->
            <!--rollingStyle节点为Composite时,每天有value个日志-->
            <maxSizeRollBackups value="20" />

            <!--可用的单位:KB|MB|GB-->
            <maximumFileSize value="10MB" />

            <!--置为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] %-5level %logger - %message%newline"/>
            </layout>
        </appender>

        <!--SqlServer形式-->
        <!--log4net日志配置:http://logging.apache.org/log4net/release/config-examples.html -->
        <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
            <!--日志缓存写入条数 设置为0时只要有一条就立刻写到数据库-->
            <bufferSize value="0" />
            <connectionType value="System.Data.SqlClient.SqlConnection,System.Data.SqlClient, Version=4.6.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            <connectionString value="Data Source=DESKTOP-T2D6ILD;Initial Catalog=LogManager;Persist Security Info=True;User ID=sa;Password=sa123" />
            <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="@message" />
                <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>

            <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
            <!--OFF:0-->
            <!--FATAL:FATAL-->
            <!--ERROR: ERROR,FATAL-->
            <!--WARN: WARN,ERROR,FATAL-->
            <!--INFO: INFO,WARN,ERROR,FATAL-->
            <!--DEBUG: INFO,WARN,ERROR,FATAL-->
            <!--ALL: DEBUG,INFO,WARN,ERROR,FATAL-->
            <priority value="ALL"/>

            <level value="INFO"/>
            <appender-ref ref="rollingAppender" />
            <appender-ref ref="AdoNetAppender_SqlServer" />
        </root>
    </log4net>
    
第三步 右键配置文件 找到属性选项  将“复制到输出目录” 更改为  "始终复制"
如下图

 

 

第四步:在program类中
添加如下代码

 

 到此,关于在.net6中 log4net的引用就结束喽!!!

标签:log4net,配置文件,nuget,引用,net6,日志
From: https://www.cnblogs.com/YZQDXMN/p/17181907.html

相关文章

  • 日志系统性能2大优化+5大准则
    目录 一、降低资源使用  1.1降低磁盘使用率  1.2异步日志  1.3降低cpu使用率二、日志链路追踪  2.1ThreadLocal技术选型  2......
  • .NET6 MVC 传值的五种方式
    //Controller:ViewBag.User1="张三";ViewData["User2"]="李四";TempData["User3"]="王五";HttpContext.Sessio......
  • nginx日志过滤php脚本
    <?php/***nginx日志过滤脚本*/$file='access.log';$access1='./access1.log';$access2='./access2.log';$access3='./access3.log';$access4='./access4.log';......
  • IDEA 控制台日志中文乱码解决方案
    1.修改IDEA安装目录下的idea64.exe.vmoptionsIDEA快捷方式右键->属性->打开文件所有位置,找到idea的安装位置下的idea64.exe.vmoptions文件,再最后一行添加-Dfile.encodin......
  • 如何使用 journalctl 查看和分析 systemd 日志(附实例)
    本指南介绍了systemd的journalctl工具及其各种命令的基础知识。你可以使用这些命令对Linux中的桌面和服务器日志进行故障诊断。以下是如何使用journalctl查看和分......
  • 机器学习日志 手写数字识别 pytorch 神经网络
    我是链接第一次用pytorch写机器学习,不得不说是真的好用pytorch的学习可以看这里,看看基本用法就行,个人感觉主要还是要看着实践代码来学习总结了几个点:1.loss出现nan这......
  • Net6 EFcore框架介绍
    1、简介EFcore,可用使得开发人员不需要再去关注数据库的实现,全都由代码进行生成这样有利于减少工作量、数据库快速迁移...2、上手搭建架构(这个图是做......
  • 一种通过nacos动态配置实现多租户的log4j2日志物理隔离的设计
    1、背景1.1、背景旧服务改造为多租户服务后,log4j日志打印在一起不能区分是哪个租户的,日志太多,太杂,不好定位排除问题,排查问题较难。1.2、前提不改动以前的日志代码(工作......
  • Logging日志
    Logging日志什么时候用到日志?可预知的情况,写日志不可预知情况,写日志基础版CRITICAL=50FATAL=CRITICALERROR=40WARNING=30WARN=WARNINGINFO=20DEB......
  • 【java】动态修改日志级别
    背景开发过程中,为了方便问题快速定位,都会在代码中增加相关日志生产环境中,为了减少日志输出量,需要提高日志级别,节约资源。如果能动态修改日志级别,当出现问题时,动态降低......