首页 > 其他分享 >log4net使用过程

log4net使用过程

时间:2023-11-24 11:35:12浏览次数:36  
标签:log4net info logerror static 使用 loginfo 过程 public

1.安装 log4net,通过 Nuget 下载

2.在AssemblyInfo.cs中添加

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

3.编写log4net.config,放在工程目录和exe目录

<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<appSettings>
<add key="WebSocketPort" value="45154" />
</appSettings>
<log4net>
<!--指定日记记录方式,以滚动文件的方式(文件记录)-->
<appender name="logInfoToFile" type="log4net.Appender.RollingFileAppender,log4net">
<!--日志路径-->
<file value="logs/info"/>
<!--是否是向文件中追加日志-->
<AppendToFile value="true"/>
<!--日志根据日期滚动-->
<RollingStyle value="Date"/>
<!--日志文件名格式为:info.2021-12-30.txt-->
<DatePattern value="'.'yyyy-MM-dd'.txt'"/>
<!--日志文件名是否是固定不变的-->
<StaticLogFileName value="false"/>
<!--布局-->
<layout type="log4net.Layout.PatternLayout,log4net">
<ConversionPattern value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<appender name="logErrorToFile" type="log4net.Appender.RollingFileAppender,log4net">
<file value="logs/error"/>
<AppendToFile value="true"/>
<RollingStyle value="Date"/>
<!--日志文件名格式为:error.2021-12-30.txt-->
<DatePattern value="'.'yyyy-MM-dd'.txt'"/>
<StaticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<ConversionPattern value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<!-- 根(父)logger -->
<root>
<!-- 支持级别:ALL -->
<level value="ALL" additivity="false"/>
<!-- ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF-->
<!-- 支持的appender名称:logInfoToFile -->
<appender-ref ref="logInfoToFile"/>
</root>
<!-- logger名称为ApplicationInfoLog,阻止父logger中的appender -->
<logger name="ApplicationInfoLog" additivity="false">
<!-- 支持级别:ALL -->
<level value="ALL"/>
<!-- 支持的appender名称:logInfoToFile -->
<appender-ref ref="logInfoToFile"/>
</logger>
<logger name="ApplicationErrorLog" additivity="false">
<!-- 支持级别:ALL -->
<level value="ALL"/>
<!-- 支持的appender名称:logErrorToFile -->
<appender-ref ref="logErrorToFile"/>
</logger>
</log4net>
</configuration>

4.编写类wLogHelper

    public class wLogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

        /// <summary>
        /// 普通的文件记录日志
        /// </summary>
        /// <param name="info"></param>
        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }
        /// <summary>
        /// 错误日志
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        public static void WriteLog(string info, Exception se)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, se);
            }
        }
    }

 

标签:log4net,info,logerror,static,使用,loginfo,过程,public
From: https://www.cnblogs.com/woox/p/17853353.html

相关文章

  • hutool 使用 TreeUtil 查询树型结构
    之前写过一篇用stream流实现查询树型结构的文章,现在以hutool中的TreeUtil再来实现一次,之前的帖子JavaStream流实现递归查询树型结构查询出所有数据,用父节点递归查询出所有子节点数据/***封装备注分类集合**@paramremarkTypeList备注分类集合*......
  • 函数计算的新征程:使用 Laf 构建 AI 知识库
    Laf已成功上架Sealos模板市场,可通过Laf应用模板来一键部署!这意味着Laf在私有化部署上的扩展性得到了极大的提升。Sealos作为一个功能强大的云操作系统,能够秒级创建多种高可用数据库,如MySQL、PostgreSQL、MongoDB和Redis等,也可以一键运行各种消息队列和微服务,甚至G......
  • C# 中增加一个使用StopWatch记录方法执行时间的通用方法
    目录一背景二源码2.1注意事项三使用方法一背景在很多时候我们在进行代码排查的时候需要在日志中记录代码的执行时间从而方便我们进行代码运行效率的执行,我们在日志中准确记录方法的执行时间,这样方便我们进行代码的排查,下面分享一个我们常用的记录方式,方便使用,而且最重要的......
  • Cocos Creator 如何使用物理引擎
    1:开启物理引擎的3个步骤和一个坑:(1)开启引擎:cc.director.getPhysicsManager().enabled=true(2)配置重力:cc.director.getPhysicsManager().gravity=this.gravity(3)通过开关来控制是否开启调试模式: 开启物理引擎的脚本代码,一定要写到onLoad函数里面,否则无法开启......
  • 使用绝对定位和列表创建二级菜单
    html部分<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>使用绝对定位和列表创建二级菜单</title><linktype="text/css"href="css/menu.css"rel="stylesheet&......
  • 在.net中使用AutoMapper进行对象映射,对象相互转,简单方便
    AutoMapper是一种对象映射工具,它可以帮助我们将不同类型的数据对象之间进行相互转换。在.NET中,我们可以使用AutoMapper库来简化数据对象之间的映射操作,从而提高代码的可读性和可维护性。一、AutoMapper的安装和基本使用安装AutoMapper首先,我们需要在项目中安装AutoMapper库。......
  • WPF使用多个ContextMenu菜单并绑定指定控件右键事件触发菜单,以及后台获取ContextMenu
    前端代码<Windowx:Class="EVES_ManualTest.CurveForm"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schema......
  • 免费云服务器的使用
    最近使用的一个免费云服务器,毕竟它是免费的,也不能说追求什么性能啥的,整体来说体验还是不错的,我主要是运用到api上,它这服务器上传文件蛮快的,比我在阿里云、腾讯云上传文件还快,这点很喜欢,其他也没啥就这样。在2000年就开始提供免费的云服务器了,现在还在提供,很厉害!!!有票票会考虑购买......
  • uniapp+vue3中使用swiper和自定义header实现左右滑动的Tabs功能
    首先创建一个Tabs的Header,包含有一个下划线的指示器,在点击tabs的标题时候下划线会跟着动态的滑动下面是完整的Tabs的代码,可以看到定义了Tabs的background颜色样式,包含tab的宽度indicatorWidth,以及下划线的颜色indicatorColor主要的是tabList属性,通过tabList传入对应的tab数组得......
  • 使用Python在Tkinter中保存异常
    我为其他使用Tkinter接收用户输入的人开发了几个Python程序。为了保持简单和用户友好,命令行或python控制台永远不会打开(即。.pyw文件),因此,当出现异常时,我正在研究如何使用日志库向文件写入错误文本。然而,我很难让它真正捕获异常。例如:我们编写一个会导致错误的函数:defcause_a......