用TextWriterTraceListener实现建议log文件记录

log4net之类3方组件确实很方便,但是想写个小小的demo之类的程序,有点用不起啊。

微软自带的TraceListener要实现一个简易的日志帮助类还是很简单的,直接上代码,自己备用,也希望对同样烦恼的哥们有用:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace TestExpressionLambda
{
    public class Logger
    {
        /// <summary>
        /// 默认路径
        /// </summary>
        public static readonly string RootPath = AppDomain.CurrentDomain.BaseDirectory + "log";

        /// <summary>
        /// 默认文件名格式
        /// </summary>
        public static readonly string FileFormat = DateTime.Now.ToString("yyyy-MM-dd") + ".log";

        /// <summary>
        /// 默认Trace监听
        /// </summary>
        public static TextWriterTraceListener traceListener;

        /// <summary>
        /// 静态实例
        /// </summary>
        private static readonly Logger instance = new Logger();
        static Logger()
        {
            if (!Directory.Exists(RootPath))
            {
                Directory.CreateDirectory(RootPath);
            }

            string logFile = RootPath.TrimEnd(‘\\‘) + "\\" + FileFormat;
            if (!File.Exists(logFile))
            {
                File.Create(logFile);
            }

            Trace.AutoFlush = true;
            traceListener = new TextWriterTraceListener(logFile);
            Trace.Listeners.Add(traceListener);
        }

        /// <summary>
        /// log输出     /// 当然这里可以自己随便扩充
        /// </summary>
        /// <param name="msg"></param>
        public static void Log(string msg)
        {
            Trace.WriteLine(msg);
        }
    }
}
时间: 2024-12-29 11:29:30

用TextWriterTraceListener实现建议log文件记录的相关文章

SQLServer:删除log文件和清空日志的方法

1.删除LOG 2. 清空日志 3. 收缩数据库文件 4. 截断事务日志 数据库的性能是DBA都需要重点关注的,日志文件的增多严重影响数据库的性能,本文将为您介绍SQL Server删除日志文件的方法,供您参考,希望对您有所帮助. 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和清空日志在清除数据库日志. 1.删除LOG 1.1 分离数据库 分离数据库

Lua生成log文件

写了一个简单的lua脚本按照日期每天生成一个log文件,记录请求的body和相关参数 1 local method = ngx.var.request_method 2 local reqbody = ngx.decode_args(ngx.ctx.reqbody) 3 local msg = string.format("lualog is here... time:%s,方法类型:%s,req_body:%s,response_code:%s,response_body:%s",o

python-实时分析log文件每秒记录数

文件名:gencdr.py 作用:在指定的时间里每秒向testcdr.txt文件中写N行记录,N为随机数.模拟access.log. # -*- coding: utf-8 -*- """ zhangbo2012 http://www.cnblogs.com/zhangbo2012/ """ import time import datetime import random filepath = "testcdr.txt" d

【个人使用.Net类库】(2)Log日志记录类

开发接口程序时,要保证程序稳定运行就要时刻监控接口程序发送和接收的数据,这就需要一个日志记录的类将需要的信息记录在日志文件中,便于自己维护接口程序.(Web系统也是如此,只是对应的日志实现比这个要复杂一点). 刚开始考虑的比较少,没有加入控制日志文件数量的功能.运行了一段时间,文件夹内的Log文件如下所示: 如果是这样,那运行一年不就三百多个日志文件了,想一想这太可怕了.通过查找资料,发现.Net中的FileInfo存有文件的信息(包括名称,创建时间,文件大小等),那就自己定义一个文件比较器实现

(转)Unity3D研究院之IOS&amp;Android收集Log文件

转自:http://www.xuanyusong.com/archives/2477 有段时间没有写过文章了,不知道大伙儿还记得雨松MOMO吗? 嘿嘿. 开发项目的时候尤其在处理与服务器交互这块,如果服务端程序看不到客户端请求的Log信息,那么无法修改BUG.在Windows上Unity会自动讲Log文件写入本地,但是在IOS和Android上确没有这个功能,所以我想了个办法,把Log信息写在手机的客户端里.把如下脚本挂在任意游戏对象上即可. using UnityEngine; using S

linux中log文件夹各个log文件内容

/var/log/messages - 包括整体系统信息,其中也包含系统启动期间的日志.此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中. /var/log/dmesg - 包含内核缓冲信息(kernel ring buffer).在系统启动时,会在屏幕上显示许多与硬件有关的信息.可以用dmesg查看它们. /var/log/auth.log - 包含系统授权信息,包括用户登录和使用的权限机制等. /var/log/boot.log

LevelDB源码之四LOG文件

“LOG文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据.因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及Dump到磁盘的SSTable文件,LevelDB也可以根据log文件恢复内存的Memtable数据结构内容,不会造成系统丢失数据,在这点上LevelDb和Bigtable是一致的.” (http://www.cnblogs.com/haippy/archive/2011/12/04/2276064

Oracle在线 redo log文件丢失后的恢复

今天一个开发库启动不了了,发过来报错一看是日志文件损坏了(见下图),接着说了一下前因后果.说是年前服务器掉电了,然后就再没有启动起来过.今天有人用才想到要处理. 先说一下大体的思路,如果损坏的redo log是INACTIVE状态的,也就是实例崩溃恢复用不到的redo log,那处理起来比较容易,直接alter database clear logfile group #;或alter database clear unarchived logfile group #;重建日志组就行了.建议重建

python实时处理log文件脚本

这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一下(还是初学者,大神们勿喷哈),真心希望博友们能够再指点一下(现在记录每次的文件大小值是输出到了一个文件中,并且里面还嵌套了有shell命令,这些我认为都是可以优化掉的吧,只是现在我还不知道怎么做):告警是基于zabbix,自定义的模板是120s执行一次 #!/usr/local/bin/pytho