xml记录操作日志(此例子是记录控件的操作,实际项目中用到觉得有用,与网上其他帖子不约而同)
来源:互联网 发布:金融大数据分析案例 编辑:程序博客网 时间:2024/05/04 04:31
结合我开发的项目而言,选择用xml方式在记录button和combox的操作日志,可以不占用数据库空间,调用简单;
在vs2008中,第一步就是要建立数据集:JobLogDataSet.xsd,在项目解决方案下右键-添加-新建项-数据集
然后在打开的窗口中建立JobLog表,添加自己需要的字段,下图中TraceLevel是指日志的类型,User是用户,Datetime是操作时间,Module是操作的模块,Function是操作控件的功能,Message是消息,如果需要记录的还要多,可以自行添加字段不过要注意的是在类型上面要注意字段的类型是string还是datetime等等如下例就是datetime的数据类型就是datetime,其他的都是string类型.
接着在后台代码中建立一个日至类型的枚举,是哪种日志Type,常用的就是以下这个类中的五种.public enum LogType { //信息,警告,错误,跟踪,不记录日志 Info, Warning, Error, Trace, Off }然后就是些操作日志的方法了:
/// <summary> /// 写Combox的的SelectChangs事件日志 /// </summary> /// <param name="traceLevel">日志类型(Info,Warning,Error,Trance,Off)</param> /// <param name="user">用户</param> /// <param name="module">模块</param> /// <param name="function">功能</param> /// <param name="message">消息</param> public static void WriteLogType(LogType logType, string user, string module, string function, string message) { try { // 类型为 LogType.Off 的 不记录日志 if (logType == LogType.Off) return; JobLogDataSet.JobLogDataTable t = new JobLogDataSet.JobLogDataTable(); string jobLogFile = AppDomain.CurrentDomain.BaseDirectory + "JobLog" + "XXXX" + ".xml"; if (!File.Exists(jobLogFile)) t.WriteXml(jobLogFile); // 从 .XML 文件中读取日志 t.ReadXml(jobLogFile); //如果xml里面有记录,清空 if (t.Rows.Count > 0) { t.Rows.Clear(); } // 重新添加日志 JobLogDataSet.JobLogRow r = t.NewJobLogRow(); r.TraceLevel = logType.ToString(); r.User = user; r.Datetime = DateTime.Now; r.Module = module; r.Function = function; r.Message = message; t.AddJobLogRow(r); // 保存到日志到 XML 文件 t.WriteXml(jobLogFile); } catch (Exception) { } }
下面是读日志的方法:
/// <summary> /// 读XXXX日志 /// </summary> /// <returns>返回读取日志的DataTable</returns> public static JobLogDataSet.JobLogDataTable ReadLog() { JobLogDataSet.JobLogDataTable jobLogDataTable = new JobLogDataSet.JobLogDataTable(); try { //从应用程序文件夹中,获取XXXX日志文件 string jobLogFile = AppDomain.CurrentDomain.BaseDirectory + "JobLogXXXX.xml"; if (File.Exists(jobLogFile)) { // 读取染色选择日志文件到临时 DataTable JobLogDataSet.JobLogDataTable t = new JobLogDataSet.JobLogDataTable(); t.ReadXml(jobLogFile); // 导入日志记录到主日志 DataTable foreach (JobLogDataSet.JobLogRow r in t) jobLogDataTable.ImportRow(r); } return jobLogDataTable; } catch (Exception) { return jobLogDataTable; } }
如果项目有需要不用留日志则可以添加一个删除方法,在程序退出后删除所有日志XML.
//每次程序退出都清空所生成的记录日志 public static void Delete() { try { string[] XmlFiles =Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory,"JobLog*.xml",SearchOption.TopDirectoryOnly); foreach (string jobXmlFile in XmlFiles) { if (File.Exists(jobXmlFile)) File.Delete(jobXmlFile); } } catch (Exception) { } }
最后直接在需要记录操作日志的地方调用方法就行!
0 0
- xml记录操作日志(此例子是记录控件的操作,实际项目中用到觉得有用,与网上其他帖子不约而同)
- 实际项目中用到的logback例子
- 使用 XML 文件记录操作日志
- 项目中用log4j记录日志到指定目录
- MYSQL执行操作日志记录到文件
- 一些Linux有用的操作命令记录
- sa--记录操作日志
- 记录mysql操作日志
- Java项目中将记录导出到Excel表格的操作
- xml操作记录--c#
- 关于数据记录的操作日志
- 记录用户操作日志的解决方案
- 总结关于操作日志记录的实现
- spring AOP的 操作日志记录功能
- linux操作命令日志 记录的方法
- spring的AOP实现记录操作日志
- linux 下记录ssh的操作日志
- 基于SpringAOP的操作日志记录实现
- Lock与synchronized 的区别
- 一百三十句感情经典话,瞬间让你明白
- “ResGen.exe”已退出,代码为2 问题处理
- Are there dictionary comprehensions in Python? (Problem with function returning dict)
- 使用jqMobi开发app基础:viewport指令
- xml记录操作日志(此例子是记录控件的操作,实际项目中用到觉得有用,与网上其他帖子不约而同)
- org.apache.jasper.JasperException: Unable to compile class for JSP
- Gesture - Swipe滑动
- 法国有座小城叫做阿纳西
- 写给自己
- Phoenix Framework如何为分布式模式批量配置任务
- 哪些我喜欢的词
- mysql 利用mysqldump 导入导出表结构、数据、存储过程及函数
- 前店后厂与中信银行台州分行签订《电子商务战略合作协议》