博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成日志
阅读量:4315 次
发布时间:2019-06-06

本文共 3992 字,大约阅读时间需要 13 分钟。

1.数据库日志

把错误写入数据库的日志中。

2.系统日志

全局应用程序类(.asax)实现: 导入System.Diagnostics ;

void Application_Error(object sender,EventArgs e)

{  Exception errinfo =Server.GetLastError();  string Message="url:"+Request.Path+errinfo.ToString();  string SourceName="mylog";  

if(!EventLog.SourceExists(SourceName))  

{   EventLog.CreateEventSource(SourceName,"logweb");  }

EventLog log=new EventLog(); log.Source=LogName;

log.WriteEntry(Message,EventLogEntryType.Error);

//删除系统日志

//EventLog.DeleteEventSource(SourceName);

//EventLog.Delete("logweb");

}

1:事件日志名(logName):“事件查看器”中的每一项,如“应用程序”、“Internet Explorer”、“安全性”和“系统”都是日志(严格地说是日志的显示名字)

2:事件源:列表中的“来源”,创建时和事件日志相关联;

3:事件类型:包括“信息”、“错误”等;

 

下面介绍事件日志的基本操作:

1:创建日志:我没找到直接创建日志的方法,日志应该都是通过下面的创建事件源来间接创建;

2:创建事件源:静态方法EventLog.CreateEventSource(string sourceName, string LogName); //参数分别表示事件源名和日志名

   功能说明:在某个事件日志中创建事件源,如果事件日志不存在,则自动创建;

3:删除日志:静态方法EventLog.Delete(string logName);

4:删除事件源:静态方法EventLog.DeleteEventSource(string sourceName);

5:判断日志是否存在:静态方法EventLog.Exists(string logName);

6:判断事件源是否存在:静态方法EventLog. SourceExists (string sourceName);

7:写日志:使用EventLog类的实例调用方法WriteEntry(string logDesc, EventLogEntryType.Information); //或者EventLogEntryType.Error

 

在注册表中也生成了相应的文件夹:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\eventlog

日志文件默认存放路径:C:\WINDOWS\system32\config

 读、写日志:

1 public void WriteLog(string logName, string SourceName, string LogText, EventLogEntryType type) 2  3         { 4  5             // Create an EventLog instance and assign its source. 6  7             EventLog el = new EventLog(); 8  9             try10 11             {12 13                 // Create the source, if it does not already exist.14 15                 if (!EventLog.SourceExists(SourceName))16 17                 {18 19                     if (EventLog.Exists(logName))20 21                     {22 23                         el.Log = logName;24 25                     }26 27                     else28 29                     {30 31                         EventLog.CreateEventSource(SourceName, logName);32 33                     }                   34 35                 }             36 37                 el.Source = SourceName;38 39                 el.WriteEntry(LogText, type);40 41             }42 43             catch (Exception ex)44 45             {46 47                 el.WriteEntry(ex.Message, EventLogEntryType.Error);48 49             }50 51  52 53         }54 55  56 57 调用上述方法:this.WriteLog("测试日志", " testSource", " my log ", EventLogEntryType.Information);
WriteLog
1 string[] logTypes = new string[] { "Application", "Security", "System" }; 2  3   4  5    foreach (string t in logTypes) 6  7    { 8  9        EventLog e = new EventLog();10 11        e.Log = t;12 13        foreach (EventLogEntry l in e.Entries)14 15        {16 17            if (l.EntryType == EventLogEntryType.Error)18 19            {20 21                Console.WriteLine(l.Message);22 23            }24 25        }26 27    }
readLog

 

3.文本日志

 

Trace Debug类提供了对日志记录的支持,他们允许单一的写日志方法(Write(),WriteLine())把日志写到多个目标上,列如界面、页面上或者文件,也可以写入事件日志中。

跟踪消息由侦听器(Listener)来收。侦听器的用途是收集、存储和路由跟踪消息。侦听器会将跟踪输出定向到适当的目标,如:日志、窗口或文本文件。

1.DefaultTraceListener 使调试消息出现在输出窗口中。

2.TextWriterTraceListner 将输出写入控制台或文件。

3.EventLogTraceListener 将输出重定向到事件日志。

4.ConsoleTraceListener 向控制台中写入跟踪和调试消息。

5.XmlWriterTraceListener 将跟踪或调试输出到xml文档。

6.DelimitedListTraceListener 跟踪输出采用分隔符分隔文本格式。

using System.Diagnostics;

void textLog() {

Trace.Listeners.Add(new TextWriterTraceListner(@"d:\log.txt"));

Trace.Listeners.Add(new EventLogTraceListener("logweb"));//可以Add多个listener.

Trace.AutoFlush=true; Trace.WriteLine("my log message"); }

4.log4net 日志框架

是一个第三方开源组件,它设计的主要目的是组合,生成日志信息,同时将配置保存到各种存储介质或者展现平台中,在实际项目中,Log4net可以保存系统运行情况,可以在系统出现异常时,根据保存的日志信息,查看当时系统的状态

using log4net; private static ILog Log=log4net.LogManager.GetLogger(typeof(类名));

Log.Debug("start");

Log.Error("run error",new ApplicationException("test"));

Log.Debug("end');

参考:

http://www.tuicool.com/articles/FrYfQvb

注;config文件需要配置。

转载于:https://www.cnblogs.com/zhubenxi/articles/5204081.html

你可能感兴趣的文章
CI框架源码学习笔记2——Common.php
查看>>
005---书籍添加和编辑的提交数据
查看>>
使用case语句给字体改变颜色
查看>>
JAVA基础-多线程
查看>>
面试题5:字符串替换空格
查看>>
JSP九大内置对象及四个作用域
查看>>
ConnectionString 属性尚未初始化
查看>>
数据结构-栈 C和C++的实现
查看>>
MySQL基本命令和常用数据库对象
查看>>
poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
查看>>
进程和线程概念及原理
查看>>
Lucene、ES好文章
查看>>
android 生命周期
查看>>
jquery--this
查看>>
MySQL 5.1参考手册
查看>>
TensorFlow安装流程(GPU加速)
查看>>
OpenStack的容器服务体验
查看>>
BZOJ1443: [JSOI2009]游戏Game
查看>>
【BZOJ 4059】 (分治暴力|扫描线+线段树)
查看>>
BZOJ 1066 蜥蜴(网络流)
查看>>