今天看了一篇文章,说的是使用微软自带的日志类写日志,然后晚上我就花了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. BAT批量处理 命令

    第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以 ...

  2. 转一篇dudu大人的文章:程序员,用NuGet管理好你的包包

    每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...

  3. vmware虚拟机检测

    jpg改rar 

  4. 智能车学习(十二)——智能车原理

    一.直立行走任务分解 1.任务分解 (1) 控制车模平衡:通过控制两个电机正反向运动保持车模直立平衡状态 (2) 控制车模速度:通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的 ...

  5. Java学习笔记(三)——运算符

    一.运算符: 1.分类: 2.java中的运算符 (1)其中,++在左,表示先加了再用,++在右,表示先用了再加. (2)% 用来求余数,也称为"取模运算符" 3.赋值运算符 4. ...

  6. css样式—字体垂直、水平居中

    “来,老板娘,给个div瞅瞅”: “好的,宇哥,来了了了”: <div class="tt">啦啦啦</div> “给各样啊,我去”: “是”: .tt{ ...

  7. DSP using MATLAB示例Example3.16

    代码: b = [0.0181, 0.0543, 0.0543, 0.0181]; % filter coefficient array b a = [1.0000, -1.7600, 1.1829, ...

  8. git 基础使用

    1: 安装客户端 2: 注册使用github 3: 具体操作 3-1: 右键打开:git bash here 执行 ssh-keygen -t rsa -C "youremail@examp ...

  9. hdu5057 Argestes and Sequence 分块

    Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Submiss ...

  10. Codeforces Round #335 (Div. 2)

    水 A - Magic Spheres 这题也卡了很久很久,关键是“至少”,所以只要判断多出来的是否比需要的多就行了. #include <bits/stdc++.h> using nam ...