今天看了一篇文章,说的是使用微软自带的日志类写日志,然后晚上我就花了2个多小时自己动手试了一下,然后模仿者自己封装了一个类库。

  下面是自己封转的类:

/*****
* 创建人:金河
* 创建日期:2014-4-2 22:43
* 内容:日志类
*/ using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.IO; namespace Log
{
/// <summary>
/// 继承TraceListener
/// (1)必须要重写的方法void Write(string message);void WriteLine(string message);
/// (2)子类方法重写必须和父类方法返回值、参数列表完全相同
/// </summary>
public class Log : TraceListener
{ private string m_fileName; // 文件名
private string m_filePath; // 文件路径 public string FileFullPath
{
get
{
if (Directory.Exists(m_filePath) == false)
{
Directory.CreateDirectory(m_filePath);
}
return m_filePath.TrimEnd('/') + "/" + m_fileName;
} } public Log()
{
m_fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; // 默认文件名为 今天的日期
m_filePath = AppDomain.CurrentDomain.BaseDirectory + "/log"; // 默认路径在当前域log文件夹下面
}
public Log(string sFileName)
{
m_fileName = sFileName;
m_filePath = AppDomain.CurrentDomain.BaseDirectory + "/log"; //默认路径在当前域log文件夹下面
} public override void Write(string message)
{
WriteLine(message);
} public override void WriteLine(string message)
{
WriteLine(null, message);
} /// <summary>
/// 将异常或信息写入日志
/// </summary>
/// <param name="exception"></param>
/// <param name="message"></param>
public override void WriteLine(object exception, string message)
{
string sMsg = Environment.NewLine + DateTime.Now.ToString() + Environment.NewLine;
if (!string.IsNullOrEmpty(message)) //如果信息不为空,加在最前面
{
sMsg += message;
}
if (exception is Exception)
{
Exception ex = (Exception)exception;
sMsg += ex.Message + Environment.NewLine; // 错误提示
sMsg += ex.StackTrace; // 堆栈信息
}
else if (exception != null)
{
sMsg += exception.ToString();
} File.AppendAllText(FileFullPath, sMsg);
} }
}

下面是文档地址:

利用C#自带组件强壮程序日志

C#向文本文件中写入日志的更多相关文章

  1. java往文本文件中写入信息并修改

    题目要求: 1.可以往一个文本文档中写入员工信息:name,id和详情 2.可以更改name package FanCQ.Xue.practice; import java.io.*;import j ...

  2. Mysql中错误日志、binlog日志、查询日志、慢查询日志简单介绍

    前言 数据库的日志是帮助数据库管理员,追踪分析数据库以前发生的各种事件的有力根据.mysql中提供了错误日志.binlog日志(二进制日志).查处日志.慢查询日志.在此,我力求解决下面问题:各个日志的 ...

  3. Java基础知识强化之IO流笔记51:IO流练习之 键盘录入学生信息按照总分排序写入文本文件中的案例

    1.  键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分排序写入文本文件中 分析:   A:创建学生类   B:创建集合对象      TreeSet<Student>   ...

  4. 解决nohup中不写入日志的问题

    (一)问题描述: nohup 你的程序命令 如: nohup python manage.py runserver 0.0.0.0:6789   (此shell窗口1不要关,另外开一个shell窗口2 ...

  5. flink---实时项目--day01--1. openrestry的安装 2. 使用nginx+lua将日志数据写入指定文件中 3. 使用flume将本地磁盘中的日志数据采集到的kafka中去

    1. openrestry的安装 OpenResty = Nginx + Lua,是⼀一个增强的Nginx,可以编写lua脚本实现⾮非常灵活的逻辑 (1)安装开发库依赖 yum install -y ...

  6. .NetCore中的日志(1)日志组件解析

    .NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包 ...

  7. 【.net 深呼吸】写入日志文件

    记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...

  8. ASP.NET 日志组件Smart.LogNet.DLL 引用即可写入日志及读取日志

    借助LogNet组件,以后查看站点日志,再也不用去服务器下载了 日志组件:LogNet.DLL ,引用即可使用 写入方法: 1.LogNet.Log.WriteLog("日志标题" ...

  9. .NetCore中的日志(2)集成第三方日志工具

    .NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...

随机推荐

  1. 手机访问 localhost

    为了测试开发的手机网站,常常需要使手机直接访问本地网络.在这个过程中碰到几个问题,记下来供以后参考 1. 在本地主机运行apache后,使用localhost和127.0.0.1可以访问页面,但使用I ...

  2. hdu 2232 矩阵 ***

    一天四个不同的机器人a.b.c和d在一张跳舞毯上跳舞,这是一张特殊的跳舞毯,他由4个正方形毯子组成一个大的正方形毯子,一开始四个机器人分别站在4 块毯子上,舞蹈的每一步机器人可以往临近(两个毯子拥有同 ...

  3. HDU 5869 Different GCD Subarray Query 离线+树状数组

    Different GCD Subarray Query Problem Description   This is a simple problem. The teacher gives Bob a ...

  4. 安装PIL

    本来直接pip install PIL的,一直说找不到对应的版本,在廖雪峰老师的博客里发现原来PIL只更新到pytyon 2.7 后来就只有Pillow了,而我的版本是2.7.9 用的时候直接from ...

  5. 序列化 Serializable

    1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...

  6. 新的开始—js客户端onlick无法响应

    第一次写博客,也是为了以后遇到同样的问题时可以找到,onlick无法响应在百度一些都有解释,这只是一个个人记录而已 问题: function change_tp(ProInfo_id, color_i ...

  7. json入门(二)

    背景 之前最早的时候,也见过类似于这样的字符串: {"list":[           {"ArticleId":7392749,"BlogId&q ...

  8. 《锋利的jQruery》读书笔记

    由于是一边看书一边练习,所以干把笔记写在html文档中.想看的同学可以复制到一个html文档中,结合浏览器查看.不得不说<锋利的jQuery>是本好书,建议好好看看.尊重知识产权,请购买正 ...

  9. POJ 1200 字符串HASH

    题目链接:http://poj.org/problem?id=1200 题意:给定一个字符串,字符串只有NC个不同的字符,问这个字符串所有长度为N的子串有多少个不相同. 思路:字符串HASH,因为只有 ...

  10. list操作 foreach和for的区别

    foreach只是简单的遍历读取,不能在循环中进行remove等操作. for可以