第一添加log4net.config,这里配置包括信息提示写入,错误信息写入,控制台消息展示

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!--信息日志配置-->
<appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\Info\info.log" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="PreserveLogFileNameExtension" value="true" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!--错误日志配置-->
<appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\Error\Err.log" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="PreserveLogFileNameExtension" value="true" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!-- 控制台前台显示日志 -->
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="Info" />
<foreColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" />
</layout> <filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Fatal" />
</filter>
</appender>
<root>
<!--配置日志的级别,低于此级别的就不写到日志里面去 None>Fatal>ERROR>WARN>DEBUG>INFO>ALL-->
<level value="ALL" />
<appender-ref ref="infoAppender" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="infoAppender" />
</logger>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="errorAppender" />
</logger>
</log4net>
</configuration>

第二将log4net.config注入到log4net中

//Winform窗体程序或者控制台程序,加载log4net配置文件,以下代码是写在Program类的Main方法中
class Program
{
  static void Main(string[] args)
  {
    //加载log4net配置文件
    var filepath = AppDomain.CurrentDomain.BaseDirectory + "log4net.config";
    log4net.Config.XmlConfigurator.Configure(new FileInfo(filepath));
  }
}
//Web程序,加载Log4net配置文件 ,以下代码是写在Global.cs类中,例如
protected void Application_Start(object sender, EventArgs e)
{
  var configPath = HttpContext.Current.Server.MapPath("~/log4net.config");
  log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
}

第三使用log4net SDK,去NUGET搜索log4net并加载到需要的项目中

/// <summary>
/// 打印日志
/// </summary>
public static class LogHelper
{
/// <summary>
/// 打印提示
/// </summary>
/// <param name="txt"></param>
public static void Info(string txt)
{
ILog log = log4net.LogManager.GetLogger("loginfo");
log.Info(txt);
} /// <summary>
/// 打印提示
/// </summary>
/// <param name="txt"></param>
public static void Info(string txt, Type type)
{
ILog log = log4net.LogManager.GetLogger(type);
log.Info(txt);
} /// <summary>
/// 打印错误
/// </summary>
/// <param name="msg"></param>
public static void Error(string msg)
{
ILog log = log4net.LogManager.GetLogger("logerror");
log.Error(msg);
}
/// <summary>
/// 打印错误
/// </summary>
/// <param name="msg"></param>
public static void Error(string msg, Exception ex)
{
ILog log = log4net.LogManager.GetLogger("logerror");
log.Error(msg, ex);
}
}

代码使用例子

protected void Page_Load(object sender, EventArgs e)
{
try
{
string a = "FF";
int b = Convert.ToInt32(a);
}
catch (Exception ex){
LogHelper.Error(ex.Message.ToString(), ex);
}
}

如果您觉得有用就直接拿去不用谢,axinno1

C# web程序,winform程序,控制台程序配置log4net,使用log4net的更多相关文章

  1. VS2013中,将Qt的GUI程序改为控制台程序

    在Visual studio 中创建QT GUI程序是不带Console的,但是调试时候常常需要查看打印信息,可以通过如下设置显示控制台 方法一.在vs中直接创建控制台程序方法二.当你通过设置你的应用 ...

  2. 分享一个客户端程序(winform)自动升级程序,思路+说明+源码

    做winform的程序,不管用没用过自动更新,至少都想过自动更新是怎么实现的. 我这里共享一个自动更新的一套版本,给还没下手开始写的人一些帮助,也希望有大神来到,给指点优化意见. 本初我是通过sock ...

  3. 【实验 1-2】编写一个简单的 UDP 服务器和 UDPP 客户端程序。程序均为控制台程序窗口。

    1.服务器 #include<winsock2.h> //包含头文件#include<stdio.h>#include<windows.h>#pragma comm ...

  4. 【实验 1-1】编写一个简单的 TCP 服务器和 TCP 客户端程序。程序均为控制台程序窗口。

    在新建的 C++源文件中编写如下代码. 1.TCP 服务器端#include<winsock2.h> //包含头文件#include<stdio.h>#include<w ...

  5. .NET CORE与Spring Boot编写控制台程序应有的优雅姿势

    本文分别说明.NET CORE与Spring Boot 编写控制台程序应有的“正确”方法,以便.NET程序员.JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写 ...

  6. C# 基础控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印

    基础学习内容有 Console.WriteLine("要输出的内容");//往外输出内容的 Console.ReadLine(); //等待用户输入,按回车键结束,防止程序闪退 控 ...

  7. c# 第五节 第一个控制台程序、第一个桌面、快捷键、注释

    本节内容: 1:控制台程序的创建 2:第一个桌面程序 3:快捷键 4:注释 一.第一个控制台程序: 这就是控制台程序: 打开你的vs2015,按如下操作 二.第一个桌面程序 比如当我们删除一个东西会弹 ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法

    Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 最近由于老师要求要在Ubuntu下QT上进程多线程服务器的开发,虽然只是单纯的调用qt的network模块,但是为了避免麻烦,我 ...

随机推荐

  1. 【spark】示例:求Top值

    我们有这样的两个文件 第一个数字为行号,后边为三列数据.我们来求第二列数据的Top(N) (1)我们先读取数据,创建Rdd (2)过滤数据,取第二列数据. 我们用filter()来过滤数据 line. ...

  2. opencv:基本图形绘制

    可以使用opencv绘制 直线.圆.方形.椭圆等基本图形. 示例代码: #include <opencv.hpp> using namespace cv; int main() { // ...

  3. 利用 innodb_force_recovery 解决MySQL服务器crash无法重启问题

    背景      MySQL服务器因为磁盘阵列损坏机器crash,重启MySQL服务时 报如下错误: InnoDB: Reading tablespace information from the .i ...

  4. Flask中的ORM使用

    前言 ORM拓展 安装 数据库设置 使用 关系 单表操作 建表 应用表结构 CRUD 添加查找操作 更新操作 删除操作 一对多 多对多 总结 前言 最近几天接触了一下Flask,在惊叹于其简洁性的同时 ...

  5. [置顶] 【机器学习PAI实践三】雾霾成因分析

    一.背景 如果要人们评选当今最受关注话题的top10榜单,雾霾一定能够入选.如今走在北京街头,随处可见带着厚厚口罩的人在埋头前行,雾霾天气不光影响了人们的出行和娱乐,对于人们的健康也有很大危害.本文通 ...

  6. not

    x = [] print(x) print(not x) print(x is None) print(not x is None) print(x is not None)

  7. Windows下Python安装lxml

    1.下载easy_install的安装包,下载地址:https://pypi.Python.org/pypi/setuptools 我是Windows7,所以直接下载Windows(Simplify) ...

  8. python笔记-5(内置函数)

    一.内置函数 1.abs()--取绝对值函数 print(abs(-0.11)) x=-0.01 y=0.11 print(abs(x),abs(y)) ----------------------- ...

  9. hibernate 一对一(One-to-One)

    一对一(one-to-one)实例(Person-IdCard) 一对一的关系在数据库中表示为主外关系.例如.人和身份证的关系.每个人都对应一个身份证号.我们应该两个表.一个是关于人信息的表(Pers ...

  10. 系列文章--SharePoint 2013 Designer 入门教程

    SharePoint的使用中,SharePoint Designer是非常重要的工具,我们可以通过Designer设计页面.母版页,维护.管理站点,也可以定制列表表单.数据视图,设计工作流等等.下面总 ...