V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dong3580
V2EX  ›  日志处理

关于日志处理的一个实例问题请教

  •  
  •   dong3580 · 2014-08-11 15:59:49 +08:00 · 3299 次点击
    这是一个创建于 3786 天前的主题,其中的信息可能已经有所发展或是发生改变。
    做一个小东西,遇到日志处理的问题,现在我有两种方法:

    方法1.在数据库里面创建一个触发器,数据库发生 "增删改查"时触发操作,插入日志表;

    方法2.在程序里面逻辑判断,普通日志直接插入日志表,遇到错误捕获异常发送邮件,新建这样一个实体类字段如下:

    [code]
    public class LogModels
    {
    public Int64 Id { get; set; }//标识
    public Int64 UserId { get; set; }//登录userid
    public string Ip { get; set; }//登录ip
    public string Browser { get; set; }//使用浏览器user-agent//Request.Browser.Browser;
    public int LogType { get; set; }//日志种类/*1登录日志,2创建,3更新,4删除,5查询(限制查询次数,缓存)6,错误日志*/
    public string ProductId { get; set; }//来源系统模块
    public string ProductUrl { get; set; }//实际链接
    public string ProductFile { get; set; }//方法所在源文件
    public string ProductFunction { get; set; }//来源方法名
    public string LogValue { get; set; }//执行操作的内容
    public string LogContent { get; set; }//如是错误日志,此处为捕获的错误原因
    public DateTime CreateDate { get; set; }//创建时间
    public Int64 CreateId { get; set; }//创建人id
    public DateTime UpdateDate { get; set; }//修改时间
    public Int64 UpdateId { get; set; }//修改人id
    }
    [/code]
    每一个方法,“增删改查”均调用执行。

    1、前者好处是方便,但是日志不具体,错误日志需还要在代码中写判断插入日志表;
    2、后者日志非常详细,而且可以后期拓展为一些小工具,但是估计这样的话日志量会“很大”;
    3、另外再有个方案:新建两张表,一个普通日志表,一个错误日志表。 普通日志表记录增删改查操作,用方法二,插入日志表;捕获到程序错误时,插入错误日志表并发送邮件;

    请教一下大家有什么好的建议?
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:13 · PVG 19:13 · LAX 03:13 · JFK 06:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.