精华内容
下载资源
问答
  • C#日志

    2009-11-04 11:25:00
    这段时间在做路测数据处理,每天都要导入千万条记录至数据库。因为数据比较庞大,程序处理的指标也很多,厂家给的原始... 日志类本身很简单,就是完成信息的记录功能,其实更重要的是保存哪些有用信息。下面我...

         这段时间在做路测数据处理,每天都要导入千万条记录至数据库中。因为数据比较庞大,程序处理的指标也很多,厂家给的原始数据也不能保证百分百正确,那么在整个逻辑处理过程中难免会存在不确定性的BUG。为了高效的保证数据的处理,非常有必要将异常信息的现场情景记录下来,为后续分析提供依据,从而快速解决问题。

         日志类本身很简单,就是完成信息的记录功能,其实更重要的是保存哪些有用信息。下面是我参考了下前辈们写的东西修改而来的日志类:

        /// <summary>
        /// 日志类
        /// </summary>
        public class ImportDataLog
        {
            //日志文件所在路径
            private static string logPath = string.Empty;
            /// <summary>
            /// 保存日志的文件夹
            /// </summary>
            public static string LogPath
            {
                get
                {
                    if (logPath == string.Empty)
                    {
                       logPath = AppDomain.CurrentDomain.BaseDirectory;
                    }
                    return logPath;
                }
                set { logPath = value; }
            }
            //日志前缀说明信息
            private static string logFielPrefix = string.Empty;
            /// <summary>
            /// 日志文件前缀
            /// </summary>
            public static string LogFielPrefix
            {
                get { return logFielPrefix; }
                set { logFielPrefix = value; }
            }
            /// <summary>
            /// 写日志
            /// <param name="logType">日志类型</param>
            /// <param name="msg">日志内容</param>
            /// </summary>
            public static void WriteLog(string logType, string msg)
            {
                System.IO.StreamWriter sw=null;
                try
                {

          //同一天同一类日志以追加形式保存
                    sw = System.IO.File.AppendText(
                        LogPath + LogFielPrefix + "_" +
                        DateTime.Now.ToString("yyyyMMdd") + ".Log"
                        );
                    sw.WriteLine(logType + "#" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg);
                }
                catch
                { }
                finally
                {
                    sw.Close();
                }
            }
            /// <summary>
            /// 写日志
            /// </summary>
            public static void WriteLog(LogType logType, string msg)
            {
                WriteLog(logType.ToString(), msg);
            }
        }
        /// <summary>
        /// 日志类型
        /// </summary>
        public enum LogType
        {
            Trace,  //堆栈跟踪信息
            Warning,//警告信息
            Error,  //错误信息应该包含对象名、发生错误点所在的方法名称、具体错误信息
            SQL    //与数据库相关的信息
        }

        在程序中,我是特别关注ERROR类型的信息。如注释所示,将引发错误的对象、方法与具体错误信息保存,对解决问题非常有帮助。

        定义Exception ex=new Exception() ,则:

        建议信息msg组成="Source:{" + ex.Source + "}" +                                                                        
                                               " StackTrace:{" + ex.StackTrace + "}" +
                                               " Message:{" + ex.Message + "}");

        班门弄斧,见笑了。。

    ===============================

    笔者建了一个C#技术交流群,欢迎C#开发人员加入。

    qq群号:300930265

    ===============================

    转载于:https://www.cnblogs.com/openPage/archive/2009/11/04/1595835.html

    展开全文
  • 日志保存的信息是Controller层的所有操作,所以我们需要在Controller使用@RequestMapping注解的name属性对实现的功能进行描述,例如: @RequestMapping(name="删除用户信息",value = "delete") p

    需求:用户使用我们的系统进行操作,如果管理员想要查看:谁在什么时候进行了哪些操作,这个功能应该怎么实现?
    使用Spring AOP实现日志输出。首先需要对日志进行自动保存,管理员才能查看,并且日志在前台页面是不能进行增删改的。

    1.添加功能描述

    日志保存的信息是Controller层的所有操作,所以我们需要在Controller中使用@RequestMapping注解的name属性对实现的功能进行描述,例如:

    @RequestMapping(name="删除用户信息",value = "delete")
    public String delete(String id){
        userService.delete(id);
        return "redirect:/user/list.do";
    }
    

    2.保存日志

    2.1 编写一个切面类

    • 在类上添加注解@Component@Aspect
    • 编写一个方法,添加环绕通知注解@Around(环绕通知可以获取到目标方法)
      1) 让目标方法执行
      2) 组装日志对象
      3) 调用SysLogService完成保存
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.*;
    import org.springframework.stereotype.Component;
    
    @Aspect   //声明当前类是切面类
    @Component
    public class LogAspect {
        @Autowired
        HttpSession session;
    
        @Autowired
        SysLogService sysLogService;
    
        @Around("execution(* com.ljw.web.controller..*.*(..))")  //切入点表达式
        public Object saveLog(ProceedingJoinPoint pjp) throws Throwable {
            //1.让目标方法执行
            Object result = pjp.proceed();
    
            //保证有用户登陆且有@RequestMapping注解的方法
            User loginUser = (User) session.getAttribute("loginUser");
            if (loginUser != null) {
    
                //判断目标方法上有无指定注解,有的话才保存日志
                //a.获取目标方法
                //方法签名对象
                MethodSignature signature = (MethodSignature) pjp.getSignature();
                //获取方法对象
                Method method = signature.getMethod();
    
                //b.判断方法上有无@RequestMapping注解,有的话才操作
                if (method.isAnnotationPresent(RequestMapping.class)) {
                    //获取方法上的注解对象,获取name属性
                    RequestMapping anno = method.getAnnotation(RequestMapping.class);
    
                    //2.组装日志对象
                    SysLog log = new SysLog();
                    log.setUserName(loginUser.getUserName());
                    log.setTime(new Date());
                    log.setMethod(method.getName());
                    log.setAction(anno.name());
    
                    //3.保存日志
                    sysLogService.save(log);
                }
            }
            return result;
        }
    }
    

    2.2 在springmvc.xml中开启AOP自动代理

    <!--开启AOP自动代理-->
    <aop:aspectj-autoproxy/>
    

    2.3 在SysLogService中编写save方法

    @Override
    public void save(SysLog sysLog) {
       //设置id
       sysLog.setId(UUIDUtils.getId());
       sysLogDao.save(sysLog);
    }
    
    展开全文
  • 出处:风流的CG网络日志 时间:Mon, 28 Aug 2006 07:24:34 +0000 作者:yufeng 地址:http:///read.php?38 内容: 提供给新手学习的 PHP新手教程,一个比较有价值的PHP新手教程! 一、PHP简介 PHP一种易于...
  • IIS6.0 IIS,互联网信息服务

    热门讨论 2010-08-23 21:20:55
    Internet Information Services(IIS,互联网信息服务),由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和...
  • 具有详尽的操作日志和数据处理历史,用户何时何地登录此系统、作了哪些操作均逐一记录在案,可供跟踪。 可按任意条件进行查询、排序,支持模糊查询,可将常用的查询条件保存起来,再次使用直接调出即可;数据可导入...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [Fix]打开about:blank空白链接的问题 [Fix]通过浮动工具栏保存图片Save As dialog不弹出 [Fix]关于自动滚屏...
  • 具有详尽的操作日志和数据处理历史,用户何时何地登录此系统、作了哪些操作均逐一记录在案,可供跟踪。 可按任意条件进行查询、排序,支持模糊查询,可将常用的查询条件保存起来,再次使用直接调出即可;数据可导入...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [改进]减少下载器 CPU 使用 [修复]下载: 使用多个显示器时 Avant不能记住新任务窗口的位置。 [修复]某些FTP...
  • 聚簇中的表无法被TRUNCATE的,这因为每个块中不只是存储一张表的数据。 ... ... 243. String a=null; if (a!=null && a.length()>10) {...} 上面面的代码,如果你用“&”替换“&&”将发生什么错误?
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [改进]减少了avant.exe的CPU占用率。 [修复]网页渲染的问题 [修复]登出的问题 [修复]界面字体不识别系统设置的...
  • 经常关注自己的网站总是想知道,网站的哪些信息更受用户欢迎?用户更关注什么产品?新增的搜索关键词功能,可以记录用户在网站上搜索过哪些关词,以及相同关键词的搜索次数等信息,帮助管理员分析网站很有利。 二...
  • 在注释中用FIXME标记某代码错误的,而且不能工作,需要及时纠正的情况 多选 17.关于MySQL性能优化的描述,下列哪些说法正确的:ABCD A .主键查询优先于二级索引查询。 B .表连接有一定的代价,故表连接数量...
  • LINGO软件的学习

    2009-08-08 22:36:50
    在一个模型,原始集基本的对象,不能再被拆分成更小的组分。原始集可以由显式罗列和隐式罗列两种方式来定义。当用显式罗列方式时,需在集成员列表逐个输入每个成员。当用隐式罗列方式时,只需在集成员列表...
  • 在控制台里看到 <code>redux-logger</code> 中间件输出的 action 日志,它们清晰地反映了业务逻辑怎样的 。如果有其他人在编辑 todolist,基于 websocket 服务端推送技术的支持,你也可以直接...
  • 18、关于“解决方案验证”说法正确的:解决方案验证可以降低风险,避免在大规模投资后才发现解决方案的基础构架部分并不能在生产很好地运行 / MSF解决方案验证并不完全等同于原型,或单纯的技术验证。...
  • 不能管理好时间,就什么都不能管理!根据”水桶理论”,时间恰恰那个最短缺的资源—短板。在激烈而复杂的市场竞争,无论企业或个人都高度关注一个问题:同样的时间,为何在不同人的面前就会体现出不同的价值。...
  • 2.2.3 不能做switch()的参数类型 2.2.4 int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据第一个元素为0...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。   更新日志: [更新]Firefox内核更新至21.0.1.4917 [更新]Chrome内核更新至27.0.1453.110 [修复]chrome模式下保存...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。   更新日志: [更新]Firefox内核更新至21.0.1.4917 [更新]Chrome内核更新至27.0.1453.110 [修复]chrome模式下保存...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 爱帆浏览器(Avant Browser) v2017.9 官方版更新日志 [更新]Firefox内核更新至53.0.0.6319 [更新]Chrome内核更新至58.0....
  • C++网络爬虫项目

    2018-07-04 00:59:17
    由于网页数量太多,搜索引擎不仅需要保存网页的原始信息,还要保存一些 间处理结果,使用单台或者少量的计算机明显是不现实的。 Google等商业搜索 引擎提供商,为此开发了一整套云存储与云计算平台,使用数以万计...
  • 软件介绍: Avant浏览器的...看到你访问过哪些网站、网页和文件。 更新日志: 修正了一个线程管理的bug,它可能造成avant稳定 修正了从系统托盘还原后UI的一个bug 修正了保存屏幕为图片时包括IE工具条的问题
  • Avant Browser 2010 build 8

    2010-07-09 14:51:06
    因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [修复]按Alt+F4不能退出浏览器 [修复]搜索结果的关键字与地址栏输入的不一致 [修复]退出登录失败 ...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [Fix]打开about:blank空白链接的问题 [Fix]通过浮动工具栏保存图片Save As dialog不弹出 [Fix]关于自动滚屏...
  • Avant Browser 2010 build 126

    2010-12-06 17:52:13
    因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [Fix]打开about:blank空白链接的问题 [Fix]通过浮动工具栏保存图片Save As dialog不弹出 [Fix]关于自动滚屏...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [Fix]导致一些页面打不开或者页面故障的Javascript错误 [Fix]Avant Browser 选项的一些设置问题 (按住鼠标...
  • 因此,在你使用隐私浏览期间,与你共用电脑的人将不能看到你访问过哪些网站、网页和文件。 更新日志: [Fix]导致一些页面打不开或者页面故障的Javascript错误 [Fix]Avant Browser 选项的一些设置问题 (按住鼠标...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

哪些信息是日志中不能保存的