C#向文本文件中写入日志
今天看了一篇文章,说的是使用微软自带的日志类写日志,然后晚上我就花了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#向文本文件中写入日志的更多相关文章
- java往文本文件中写入信息并修改
题目要求: 1.可以往一个文本文档中写入员工信息:name,id和详情 2.可以更改name package FanCQ.Xue.practice; import java.io.*;import j ...
- Mysql中错误日志、binlog日志、查询日志、慢查询日志简单介绍
前言 数据库的日志是帮助数据库管理员,追踪分析数据库以前发生的各种事件的有力根据.mysql中提供了错误日志.binlog日志(二进制日志).查处日志.慢查询日志.在此,我力求解决下面问题:各个日志的 ...
- Java基础知识强化之IO流笔记51:IO流练习之 键盘录入学生信息按照总分排序写入文本文件中的案例
1. 键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分排序写入文本文件中 分析: A:创建学生类 B:创建集合对象 TreeSet<Student> ...
- 解决nohup中不写入日志的问题
(一)问题描述: nohup 你的程序命令 如: nohup python manage.py runserver 0.0.0.0:6789 (此shell窗口1不要关,另外开一个shell窗口2 ...
- flink---实时项目--day01--1. openrestry的安装 2. 使用nginx+lua将日志数据写入指定文件中 3. 使用flume将本地磁盘中的日志数据采集到的kafka中去
1. openrestry的安装 OpenResty = Nginx + Lua,是⼀一个增强的Nginx,可以编写lua脚本实现⾮非常灵活的逻辑 (1)安装开发库依赖 yum install -y ...
- .NetCore中的日志(1)日志组件解析
.NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包 ...
- 【.net 深呼吸】写入日志文件
记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...
- ASP.NET 日志组件Smart.LogNet.DLL 引用即可写入日志及读取日志
借助LogNet组件,以后查看站点日志,再也不用去服务器下载了 日志组件:LogNet.DLL ,引用即可使用 写入方法: 1.LogNet.Log.WriteLog("日志标题" ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
随机推荐
- oracle pctfree和pctused详解
一.建立表时候,注意PCTFREE参数的作用 PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert ...
- js onclick="return test()"事件返回值,对有些事件,会影响默认动作的执行。如:onclick和onsubmit
onclick="return test()"事件返回值,对有些事件,会影响默认动作的执行.如:onclick和onsubmit <body> <!--事件返回值 ...
- js 动态时钟
js 动态时钟 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- Windows下Apache服务器中自动配置二级子域名
今天我们介绍的这个办法,只需要简单修改 httpd-vhosts.conf 文件,配合 .htaccess 文件即可实现自动配置二级域名. 我们这里以 wpchina.com 为例,以下代码中的 wp ...
- 11g新特性-如何禁用自动统计信息收集作业
一.11g中auto stats gather job被集成到了auto task中. SQL> select client_name,status from DBA_AUTOTASK_CLIE ...
- linux中socket的理解
对linux中socket的理解 一.socket 一般来说socket有一个别名也叫做套接字. socket起源于Unix,都可以用“打开open –> 读写write/read –> ...
- Android LayoutInflater详解(转)
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例 ...
- VC 快速创建多层文件夹
BOOL CreateDirectory( LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); 这个是大多数用户都知道的 ...
- AndroidStudio导入新项目一直卡在Building gradle project info的解决解决方案
尝试了各种办法,FQ,离线gradle等,发现一个更好用更简单的办法: 解决方案: 1.随便找一个你能运行的as项目 2.打开gradle-wrapper.properties,文件目录:项目/g ...
- C# Stream 和 byte[] 之间的转换(文件流的应用)
一. 二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = ; Image img = Image.FromStream( ...