Logo

log4net-mvc中引用log4net

photo

2022年05月19日

引用包

点击需要添加log4net项目,在线下载安装包,如下:

在管理器中输入log4net下载一个合适的安装包,不要下载最大的,如下:

安装完成之后就完成了安装,然后下面就开始配置了。

配置

整个项目有如下几个地方需要配置:
1:web.config
2:AssemblyInfo.cs
3:Global.asax

首先先配置web.config

在如下节点中增加如下信息:

代码如下:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>

注意,也有人插入如下代码:

<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />

但是这种代码本地看起来生效,但是跑到服务器上是不生效的。

然后在configuration节点最后面添加如下脚本:

<log4net>
    <!--错误日志:::记录错误日志-->
    <!--按日期分割日志文件 一天一个-->
    <!-- appender 定义日志输出方式   将日志以回滚文件的形式写到文件中。-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <!--保存路径:下面路径项目启动的时候自动在C盘中创建log、logError文件-->
      <file value="log\error\"/>
      <param name="Encoding" value="utf-8" />
      <!-- 如果想在本项目中添加路径,那就直接去掉C:\\  只设置log\\LogError   项目启动中默认创建文件 -->
      <appendToFile value="true"/>
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <rollingStyle value="Date"/>
      <!--这是按日期产生文件夹-->
      <datePattern value="yyyyMMddHH'.txt'"/>
      <!--是否只写到一个文件中-->
      <staticLogFileName value="false"/>
      <!--保留的log文件数量 超过此数量后 自动删除之前的   好像只有在 按Size分割时有效 设定值value="-1"为不限文件数-->
      <param name="MaxSizeRollBackups" value="100"/>
      <!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1GB" />
      <!-- layout 控制Appender的输出格式,也可以是xml  一个Appender只能是一个layout-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    <appender name="logAppender" type="log4net.Appender.RollingFileAppender">
      <!--保存路径:下面路径项目启动的时候自动在C盘中创建log、logError文件-->
      <file value="log\info\"/>
      <!-- 如果想在本项目中添加路径,那就直接去掉C:\\  只设置log\\LogError   项目启动中默认创建文件 -->
      <appendToFile value="true"/>
      <param name="Encoding" value="utf-8" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <rollingStyle value="Date"/>
      <!--这是按日期产生文件夹-->
      <datePattern value="yyyyMMddHH'.txt'"/>
      <!--是否只写到一个文件中-->
      <staticLogFileName value="false"/>
      <!--保留的log文件数量 超过此数量后 自动删除之前的   好像只有在 按Size分割时有效 设定值value="-1"为不限文件数-->
      <param name="MaxSizeRollBackups" value="100"/>
      <!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1GB" />
      <!-- layout 控制Appender的输出格式,也可以是xml  一个Appender只能是一个layout-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    <!--Error日志::: 错误日志-->
    <logger name="errror">
      <appender-ref ref="ErrorAppender" />
    </logger>
    <logger name="info">
      <appender-ref ref="logAppender" />
    </logger>
  </log4net>

这段代码的具体含义,如果想详细了解的可自行去查log4net的官方文档。

然后就是配置:AssemblyInfo.cs文件,在这个文件中插入一句话就行:

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

如下:

最后面就是Global.asax文件,添加如下代码:

 log4net.Config.XmlConfigurator.Configure();

这样就配置完成了。最后就是运用。

在项目中新建一个如下类:

public class LogHelper
    {
        public static void Info(string txt)
        {
            ILog log = LogManager.GetLogger("info");
            log.Info(txt);

        }
        public static void error(string txt)
        {
            ILog log = LogManager.GetLogger("errror");
            log.Error(txt);

        }
    }

然后在需要用到的地方如下使用就行了:

LogHelper.Info("日志记录");
本文为原创文章,请注意保留出处!

留言板

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

常用JS—Array数组方法 2022年05月18日

every对数组中每一项进行给定函数,如果每一项都满足条件则返回true,否则返回false;v...常用JS—Array数组方法

热门文章

修复群晖Synology Drive client右键菜单缺失问题 本教程主要解决windows10右键菜单中没有SynologyDrive菜单的问题,整体思路是找到...修复群晖SynologyDriveclient右键菜单缺失问题 作者:Pastore Antonio
1812 浏览量
docker如何查看一个镜像内部的目录结构及其内部都有哪些文件 前言:有时候我们会在docker上下载一个镜像,或者是上传一个镜像到docker上,甚至有时候就是在...docker如何查看一个镜像内部的目录结构及其内部都有哪些文件 作者:Pastore Antonio
1791 浏览量
configure: error: Package requirements (oniguruma) were not met configure:error:Packagerequirements(oniguruma)...configure:error:Packagerequirements(oniguruma)werenotmet 作者:Pastore Antonio
1530 浏览量
Adobe Acrobat Pro 激活 这里记录了一些AdobeAcrobat的激活教程和组件。浏览量:1,683 作者:Pastore Antonio
1528 浏览量
追寻日出,找回自己 为什么我要去追寻日出?其实我是一个很懒的人,每次都起不来,直到有一次我在租房中睡到了大天亮,阳光照...追寻日出,找回自己 作者:Pastore Antonio
1506 浏览量