CS 系统框架二[简单记录系统日志]

园子里面有几位朋友跟我说最好可以记录一些相关的日志,以便据此查找一些其它的信息或者是DeBug,我简单的处理了一下,

这里用到了一个枚举:

需要用的时候就传一个标志进来就行了,记录日志的函数就不说了,说白了就是记录一些数据,后台调用如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace Allen.Tools.Common
 7 {
 8     public static class SystemLog
 9     {
10         public static string GetLogType(int Type)
11         {
12             if (Type == 1)
13             {
14                 return "操作日志";
15             }
16             else if (Type == 2)
17             {
18                 return "安全日志";
19             }
20             else if (Type == 3)
21             {
22                 return "访问日志";
23             }
24             else
25             {
26                 return "不确定的类型";
27             }
28
29         }
30     }
31 }
 1 private void tsSave_Click(object sender, EventArgs e)
 2         {
 3             string FunctionName = txtItemName.Text.Trim();
 4             string FrmName = txtFrmName.Text.Trim();
 5             string MenuGroupID = this.cmbMenuGroupName.SelectedValue.ToString();
 6             string ICO = this.cmbICO.Text.Trim();
 7             string FrmCode = this.txtFunCode.Text.Trim();
 8             string IsAutoLoad = rdoAutoLoad.Checked ? "1" : "0";
 9             switch (intType)
10             {
11                 case 1:
12                     if (new BLL.sys_FunctionManager().CreateFunction(FunctionName, MenuGroupID, FrmName, ICO))
13                     {
14                         MessageText = "子菜单资料创建成功!\r\n【子菜单】:" + FunctionName;
15                         MessageBox.Show(MessageText, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
16
17                     }
18                     break;
19
20                 case 2:
21                     if (new BLL.sys_FunctionManager().UpdateFunction(FunctionName, MenuGroupID, FrmName, ICO))
22                     {
23                         MessageText = "子菜单资料修改成功!\r\n【子菜单】:" + FunctionName;
24                         MessageBox.Show(MessageText , "提示信息:", MessageBoxButtons.OK, MessageBoxIcon.Information);
25                     }
26
27                     break;
28             }
29             tsCreate.Enabled = true;
30             tsChange.Enabled = true;
31             tsDelete.Enabled = true;
32             tsClose.Enabled = true;
33             tsSave.Enabled = false;
34             tsWaiver.Enabled = false;
35             blType = false;
36             FrmFunction_Shown(sender, e);
37
38             #region 记录系统日志
39             try
40             {
41                 if (intType == 1)
42                 {
43                     ExecMethodName = "BLL.sys_FunctionManager().CreateFunction";
44                 }
45                 if (intType == 2)
46                 {
47                     ExecMethodName = "BLL.sys_FunctionManager().UpdateFunction";
48                 }
49                 new BLL.PublicManager().CreateSystemLog(allensingleton.UserID,
50                     ExecMethodName, MessageText, SystemLog.GetLogType(1).ToString());
51             }
52             catch (Exception)
53             {
54             }
55             #endregion
56         }

 

这里因为创建和修改在同一个事件(Save的事件)里面实现的,所以我用if来判断了一下,如果是单一的情况则不需要这样处理了,日志记录如下图:

本来想把用户每一步操作的SQL语句给记下来的,但是发现有的字符串非常的长,包括那些参数,所以就只记录了当时执行的函数名称。

PS:    我把代码整理了一下,看起来比之前规范了一些,应该不会被移除首页了吧...

 

 

时间: 2024-10-26 09:21:19

CS 系统框架二[简单记录系统日志]的相关文章

CS 系统框架二[右下角提示信息以及用户自由申请帐号功能]

园子里面有位朋友对我这个小框架提出了一些建议,我觉得很适用(不管是圆友还是用户给我提出的意见,我都认真考虑了,该采纳的都采纳了,我相信这样一来我这个程序应该会更完整,在此感谢大家的指点),有两点建议我比较认同,第一点就是在用户没有登录ID的情况下可以自由申请帐号,然后等待管理员审核之后方可生效,这种功能还是比较人性化的,不是说你没有登录ID就完全没办法操作这个系统,至少可以申请一个登录ID,至于什么时候可以得到审核,那是另外一件事情了,我相信这样一来对用户的体验一定会好很多,所以我将这个功能完善

CS 系统框架二[完善自动更新]

增加了程序自动更新版本的功能,实现方式如下: 后台数据库中用一张表来保存程序的版本信息,该表的字段很简单,如下: 开发文档 CREATE TABLE [dbo].[sys_AutoUpdate]( [UID] [int] IDENTITY(1,1) NOT NULL, [SystemName] [varchar](50) NULL, [SystemVersion] [varchar](10) NULL, [Remark] [text] NULL, [UpdateDate] [datetime]

CS 系统框架二[增加默认启动以及代码打开窗体]

前几天有几个朋友要了我的框架源码,这几天也经常通过远程以及电话来帮他解决一些问题,后来他说马上要交项目了,但是有一个问题还没有搞出来,那就是在原有的框架里面如何设置一个窗体自动启动?本身我的框架是登录进去之后所有的菜单都是根据后台的权限进行分配,加载进来之后绑定在工具箱里面,当用户点击菜单之后才会加载窗体,看他现在的意思是想登录进去之后默认启动一个窗体,这个简单,因为加载窗体的动作是写的一个方法来调用的,那么只需要在Load里面调用一下就行了, 1 private void FrmMain_Lo

CS系统框架二(数据库配置)

  在数据库配置方面暂时采用了将信息写入App.Config里面,大致分为Sql Server,Oracle,Access,MySql等,如果用户登录的时候系统发现连不上数据库那么就提示用户对数据库进行配置一下,但是总觉得将连接信息写入App.Config里面有点不安全,那个App.Config文件就在程序的安装目录里面,别人找到了还不是照样可以获取数据库密码么,不知道是否还有其他好点的办法,如果有朋友对这个问题比较有见解的话麻烦支个招,QQQ.    

CS 系统框架二[部分内容更新]

http://www.cnblogs.com/allen0118/archive/2012/05/10/2494112.html 这边文章里面只是将大致的轮廓组织了一下,现在慢慢来将其完善, 本次更新了2点内容,第一就是将权限细化到每一个按钮,因为当时设计的时候每一个窗体上面的菜单都是统一的,所以比较容易控制, 开发文档 以下代码比较重要,记录了一些全局的东西: 1 public sealed class AllenSingleton 2 { 3 private static volatile

CS 系统框架二

自己一直想有一个完全属于自己的编程小框架,之前使用的方式是将每一个窗体文件都编译为一个DLL文件,在新建窗体的时候首先新建一个类,然后在这个类里面新建窗体,编译之后就是一个DLL文件,最后通过一个函数去读取这个DLL文件里面的信息,包括窗体名称,版本等,最后将设个窗体Show出来,Show出来的时候是使用的WeifenLuo.WinFormsUI.Docking.看上去貌似没什么问题,但是每次New一个窗体的时候就要New一个对应的类,那么有几百个窗体呢?那项目将会大的惊人,所以放弃了这种做法,

基于WPF系统框架设计(5) Ribbon整合Avalondock 2.0实现多文档界面设计(二)

AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件.最新发布的 版本原生支持MVVM框架.Aero Snap特效并具有更好的性能. AvalonDock 2.0版本已经发布了,新版本 是用MVVM框架重新编写,似乎也用了Command(命令)模式.2.0版的文档尚未发布,但你可以参考 Avalon.TestApp 或者2.0版源码中的Avalon.MVVMTestApp文件夹来查看新的API. 前一篇博文有介绍关于AvalonDoc

搭建系统框架发现的三个Web.Config问题

web|问题 --------------------------------<特别声明,此文档是转载,黄勇BLOG的文章>-----------------------------------搭建系统框架发现的三个Web.Config问题 按照微软的Duwamish7搭建一个Web系统框架,虽然说是一个现成的框架在旁边,却还是遇到一些烦人的小问题,其中有好几个就是这个Web.Config搞的鬼!1.搭建好的系统框架运行出错,报什么不能正确读取ApplicationConfiguration配

.NET插件系统之二——不实例化获取插件信息和可视化方法

 面临的问题       在开发插件系统中,我们通常会面临这样的问题:        一些功能并不是在开启时就要被使用的,例如VS中的大量功能对一个大部分程序员来说用不着,但框架本身却应该向用户提供该插件的相应信息?        在可视化的插件功能列表中,我们不仅希望提供简单的插件名称信息,更希望能以图片,或动画等形式展示其功能特性,便于用户选择.        插入辅助类来解决上一个问题? 想法虽好,但破坏了"插件"的精髓,它应该是独立可插拔的,如果存在其之外的辅助类,那真是得不偿