C# 简单日志文本输出

摘要:
使用系统;使用System.Collections。通用的使用系统。林克;使用系统。文本使用System.Threading。任务;使用log4net;使用log4net。果心[assembly:log4net.Config.XmlConfigurator]命名空间锅炉仪表板。公共{publicclassLogHelper{/////将日志输出到Log4Net////<paramname=“t”˃//#regionstaticvoidWriteLogpublicsvoidWiteLog{Log4Net.ILoglog=Log4Net.LogManager.GetLogger;log.Error;}#endregion/////将日志输出到Log4Net//////#regionstaticvoidWriteLogpublicstaticvoidWriteLog{Log4Net.ILoglog=Log4Net.LogManager.GetLogger;log.Error;}#Endregion}}Microsoft Enterprise Library中的第三个Log函数以VS2012中创建的控制台程序为例。1.在Microsoft企业库中安装LoggingApplication模块。右键单击应用程序选择编辑配置文件v6以打开配置工具窗口。FormatterName的值是从LogMessageFormatters中生成的值中选择的。

第一种 直接文件IO流写日志文件

usingSystem.IO;
public static void WriteLog(stringstrLog)
{
  string sFilePath="d:\"+DateTime.Now.ToString("yyyyMM");
  string sFileName = "rizhi" + DateTime.Now.ToString("dd") + ".log";
  sFileName = sFilePath+ "\"+sFileName; //文件的绝对路径
  if (!Directory.Exists(sFilePath))//验证路径是否存在
{
    Directory.CreateDirectory(sFilePath);
    //不存在则创建
}
  FileStream fs;      
  StreamWriter sw;
  if(File.Exists(sFileName))
  //验证文件是否存在,有则追加,无则创建
{
    fs = newFileStream(sFileName, FileMode.Append, FileAccess.Write);
  }
  else{
    fs = newFileStream(sFileName, FileMode.Create, FileAccess.Write);
  }
  sw = newStreamWriter(fs);
  sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + "---   " +strLog);
  sw.Close();
  fs.Close();    
}

第二种 使用log4net类库输出日志

1.下载log4net类库 并选择项目对应的框架版本

下载地址:http://logging.apache.org/log4net/download_log4net.cgi

2.添加log4net引用,创建LogHelper类。

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usinglog4net;
usinglog4net.Core;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespaceBoilerDashboard.Common
{
    public  classLogHelper
    {
        /// <summary>
        ///输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="ex"></param>
        #region static void WriteLog(Type t, Exception ex)

        public static voidWriteLog(Type t, Exception ex)
        {
            log4net.ILog log =log4net.LogManager.GetLogger(t);
            log.Error("Error", ex);
        }

        #endregion

        /// <summary>
        ///输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="msg"></param>
        #region static void WriteLog(Type t, string msg)

        public static void WriteLog(Type t, stringmsg)
        {
            log4net.ILog log =log4net.LogManager.GetLogger(t);
            log.Error(msg);
        }

        #endregion

        
    }
}

第三种Microsoft Enterprise Library里面的Log功能

以VS2012里面建立的一个控制台程序为例
1. 安装Microsoft Enterprise Library里面的Logging Application模块。
在需要使用Log功能的项目上面右键,选择Manage NuGet Packeages...
2. 在Manage NuGet Packeages窗口里面找到Enterprise Library - Logging Application Block,然后安装
安装成功以后,项目引用中会增加两个新的引用。
3. 我们需要对App.config文件进行配置。在这里我们使用配置编辑工具:Microsoft.Practices.EnterpriseLibrary.ConfigConsoleV6.vsix。这个工具的下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=38789
4. 配置App.config文件。右键App.config文件选择Edit configuration file v6,打开配置工具窗口。
5. 选择菜单命令Block -> Add Logging Settings
6. 在Logging Target Listeners里面点加号按钮,然后选择Add Rolling Flat File Trace Listener(生成可以进行自动分割的文本文件)。
7. 一般需要设置的参数有:Asynchronous(选true则进行异步log), File Exist Behavior(选), File Name, Formatter Name, Max Archived Files, Roll Interval, Roll Size KB。
其中Formatter Name的值从Log Message Formatters中生成的值中选取。
8. 生成 Message Format。在Log Message Formatters中点击加号按钮,选择Add Text Formatter
点击Template右侧的...按钮,打开Template Editor对话框,对Template的内容进行编辑
编辑后在App.config中生成的xml代码如下:
Logging formatter
9. 在窗口左侧区域中点击Cotegories右边的加号按钮。生成一个新的Category
10. 在新生成的Category区域中修改Name属性,然后点击Listeners右边的加号按钮,选择在Logging Target Listeners区域中已经生成的Listener。
11. 对已经进行的设置保
12. 写个简单的测试程序看看生成的Log效果如何

免责声明:文章转载自《C# 简单日志文本输出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#文件处理相关内容MVC中ajax调用API版信息分页显示下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VLAN、Trunk,以太通道及DHCP

VLAN、Trunk,以太通道及DHCP 案例1:Vlan的划分 案例2:配置trunk中继链路 案例3:以太通道配置 案例4:DHCP服务配置 1 案例1:Vlan的划分 1.1 问题 VLAN(虚拟局域网)是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段。一个VLAN可以在一个交换机或者跨交换机...

WebService处理大数据量数据

在通过WebService处理大数据量数据时出现如下错误: soap fault: 运行配置文件中指定的扩展时出现异常。 ---> 超过了最大请求长度。 解决方法: 因为上传的文件大于系统默认配置的值,asp.net web service默认的请求长度是4M。 1、针对单个项目,只需修改Web.config就可以了: 修改配置可以在web.conf...

kafka单机安装和启动

1.下载并解压到/usr/local/src目录下 2.运行kafka需要使用Zookeeper,先启动Zookeeper,如果没有Zookeeper,可以使用kafka自带打包和配置好的Zookeeper 前台运行: bin/zookeeper-server-start.sh config/zookeeper.properties 后台运行: nohu...

redis参数改进建议

1、修改stop-writes-on-bgsave-error为no当前配置为yes,分别修改redis.conf和当前实例#redis.confstop-writes-on-bgsave-error no #登陆redis执行config set stop-writes-on-bgsave-error no查看config get stop-writes...

IIS用命令行重启其中一个具体的站点服务

本文转载于  https://blog.csdn.net/hejisan/article/details/81750808 我们有很多种办法,可以重新启动IIS的网站、服务,但都是同时重启所有网站和服务 在做Jenkins自动化部署时,我们有一个需求,需要单独停止、启动指定的网站,同IIS下的其他网站,不能受到影响,那么应该如何做呢? 只需要让他在CMD下...

npm下载包时代理配置

主要有两种方式,1通过命令行临时配置,2通过配置文件进行永久配置。 1、命令行: npm install --proxy http://localhost:1080 如果有账号密码等验证的,需要在后面的url地址上加上。 2、通过config进行配置文件的写入,实现全局: 普通: npm config set proxy http://server:por...