- 浏览: 726699 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1081)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (0)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (0)
- [网站分类]4.其他技术区 (0)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (2)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (0)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (1)
- 技术 (1)
- [随笔分类]生活感悟 (10)
- [随笔分类]C# (30)
- [随笔分类]AjaxPro教程 (3)
- [发布至博客园首页] (5)
- [随笔分类]简历 (0)
- [随笔分类]Linux (2)
- [随笔分类]技术聚会 (2)
- [随笔分类]ORM (1)
- [随笔分类]php (1)
- [随笔分类]创业 (1)
- [随笔分类]奇技淫巧 (1)
- [随笔分类]计划 (1)
- [随笔分类]架构&分层 (1)
- [随笔分类]整合行销 (1)
- [随笔分类]mac (1)
- [网站分类].NET新手区 (45)
- [网站分类]非技术区 (5)
- [网站分类]招聘区 (0)
- [随笔分类]单元测试 (1)
- [网站分类]其他技术区 (3)
- [网站分类]代码与软件发布 (6)
- [网站分类]提问区 (24)
- [随笔分类]ASP.NET (2)
- [随笔分类]FAQ (12)
- [随笔分类]开发人员工具 (1)
- [随笔分类]朗志轻量级项目管理解决方案 (1)
- [网站分类]读书区 (1)
最新评论
-
天使建站:
写和乱七八糟的 不知道从哪复制过来的 还是看这里吧j ...
jquery数组 -
hyn450:
你好,我最近也想了解一下竞争情报。不知道能不能交流一下呢 ?
最近的工作 -
lattimore:
这个连接打不开了阿!
使用vnc连ubuntu desktop -
MZhangShao:
奉劝你一句,以后在Ubuntu 用apt-get安装成功的软件 ...
关于xrdp的安装设置 -
f002489:
strftime
python下datetime类型的转换
最近在写一个分布式缓存的框架性基础性组件,和以往做个网站,写个程序不同的是,如果写得不好,可能对全局都会有影响,因此在写这种程序代码时,你会有一种压力。
比如:万一在生产环境用这个组件出了问题怎么办?是否能够迅速定位到错误的地方,找出原因修正?
原先我写程序都是象征性的用一下log4net,common-logging之类的输出日志:
private static ILog logger = LogManager.GetLogger(typeof (LocalcacheBackend));
logger.Info(m=>m("由于没有收到任何set消息,因此这里不触发CacheItemSetedReceived事件"));
可是在生产环境这种海量利复杂的环境下,你就会担心一个是日志量巨大,出了问题不好排查,一般都只记录到Error级别,记录到这个级别的日志,是否足以让你找到错误,多久你能分析出错误,并修复它。
我思考的问题是log4net之类只的日志记录组件,提供给我们了记录日志的方案,仅是一个工具,但是具体在实际中如何设计一个有层次能够及时在复杂生产环境中,快速找到问题,还需要一定的方法和理论的知识,这些知识一般的书本上都没有告诉你,需要你在实际中去摸索和总结。
另外我也发现,log4net等提供的记录RollingLogFileAppender并不是非常实现,一般只用来做为事后备查的手段,在开发的过程中使用UdpAppender更为实时有效,这里有篇文章大家可以参考
CodeProject: A log4net Realtime Color Console for ASP.NET. Free source code and programming help
但在实际生产环境中我还没有找到一个比较好的组合方案,但是下面几个appender是我觉得在生产环境中值得应用推荐的
Product env:
RollingFileAppender
SmtpAppender/SmtpPickupDirAppender
TraceAppender
EventLogAppender
Dev env:
EventLogAppender
RollingFileAppender
UdpAppender
OutputDebugStringAppender
ColoredConsoleAppender
具体还是得根据实际的场景去量体裁衣,熟读log4net的配置文档,
Apache log4net - Apache log4net: Config Examples
另外一个发现是log4net已经对.net内建的System.Diagnostiscs命名空间下的Debug和Trace功能提供了支持,原先我还在想如何整合这一块的内容进去呢
System.Diagnostics命名空间里的Debug类和Trace类的用途 - 破浪 - 博客园
浅谈C#中的Trace和Debug类【转】 - 从绝望中寻找希望,人生终将辉煌! - 博客园
在做日志分析时需要有好的图形界面工具,特别是对于多线程程序就更加依赖这种工具如:
logParser
TraceTool 8: The Swiss-Army knife of trace - The Code Project - C# Programming
我在此也只是罗列一下,我并没有找到特别合适的工具,由于工作任务繁重,也就先告一段落,以后有机会再捡起来继续深究一下。在此小记一下,以便回忆。
发表评论
-
请教一个winform程序设计上的问题
2007-07-12 02:22 712想要做一个功能,点击按钮出现一个键菜单,如下图所示:而在我的程 ... -
模拟提交程序相关专题
2007-11-29 18:53 965目录 模拟提交程序相关专题 1 目录 ... -
如何使用树形控件
2007-11-29 18:58 1356目录 如何使用树形控件 1 目录 2 ... -
XML文档数据操作心得
2007-11-29 19:00 782目录 XML文档数据操作心得 1 修订历史纪录 ... -
自制线程池3续
2008-08-13 13:59 653晚上睡觉前想到一些问题,发现有几种情形没有进行测试,遂记录下来 ... -
刚才是不是访问出问题了
2008-08-14 20:08 639Invalid URL The requested URL & ... -
Mock介绍
2008-08-17 19:48 1042在园子里搜索了一下, ... -
单元测试介绍
2008-08-18 07:25 738希望能不落熟套,在这里记录单元测试使用中的一些技巧 1.刚从英 ... -
最近几天的工作总结
2008-08-21 16:29 667缓存真的很重要,这几天在做信息采集的过程中,需要动态的生成程序 ... -
BDB使用总结
2008-08-24 12:26 730当对数据库设置了DbFlags.Dup后,允许重复的键值, 当 ... -
截图留念
2008-08-28 20:57 381... -
分布式信息采集程序Preview2
2008-08-29 17:17 607http://files.cnblogs.com/lexus/ ... -
boo & python笔记
2008-08-30 21:22 590在这里记录一下,自己的复习所得,有大概一个月没有碰这些东西了, ... -
log4net udp组件的应用
2008-08-30 23:57 765由于输出的调试信息非常之多,加上早前有一些用的是Console ... -
检测你的机子上装了什么版本的.net framework
2009-12-09 09:20 700这个想法由来已久,今天又碰上有人问我这个问题,使出吃奶的劲尔狠 ... -
最近几天的工作总结
2008-08-21 16:29 777缓存真的很重要,这几天在做信息采集的过程中,需要动态的生成程序 ... -
BDBViewer
2008-08-23 10:37 590因为项目中用了BDB,可是BDB不像sqlite有众多的数据库 ... -
扩展方法应用
2008-08-23 16:26 715using System; using System.Coll ... -
BDB使用总结
2008-08-24 12:26 752当对数据库设置了DbFlags.Dup后,允许重复的键值, 当 ... -
目前来说比较.net下最好的bdb操作封装(附单元测试)
2008-08-24 15:41 7621using System; 2using Syste ...
相关推荐
通过以上内容的总结和扩展,我们可以看出《程序调试黑宝书》旨在帮助读者建立正确的编程思维,掌握有效的调试技巧,并通过具体的实例加深对程序设计和调试的理解。无论是对于新手还是有一定经验的开发者,都能从中...
### 关于计算机专业实习日记的知识点总结 #### 一、实习背景与心态调整 - **全球金融危机背景**:本文档记录的时间为2009年,正值全球金融危机时期,这给寻找实习机会带来了额外的挑战。 - **大学生心态变化**:...
他们不仅需要掌握硬件知识,还需要熟悉操作系统、驱动程序等技术领域。 - **职业发展**:随着物联网(IoT)和智能设备的快速发展,对嵌入式工程师的需求持续增长。具备多年经验的高级工程师能够获得较高的薪酬待遇。...
- 谦虚:始终保持学习的态度,对新技术持开放心态。 - 严谨:对待每一行代码都应认真负责,确保程序的质量。 - 勤思:多思考问题背后的原理,不断探索更优的解决方案。 - 善问:遇到难题时勇于寻求帮助,利用...
- 思考遇到的问题及解决方案,进行自我反思。 **如何有效地进行资料整理?** - **关键点:**分类明确、标签一致、检索迅速。 - **解决方案:** - 根据内容属性进行分类存储; - 统一使用标签系统,确保一致性; ...
【C语言短学期实践日志心得】 在当前的科技时代,计算机扮演着至关重要的角色,而C语言作为计算机编程的基础语言之一,对于理解和掌握计算机工作原理具有重要意义。通过短学期的C语言实践日志,我们可以深入理解...
- **多线程与高并发**:能够设计并实现多线程程序,理解线程安全的概念及其实现方法;掌握常见并发工具类如`CountDownLatch`、`Semaphore`等的使用。 - **设计模式应用**:熟悉常用的设计模式,如单例模式、工厂模式...
- 初级:能够理解基本语法并编写简单的程序。 - 中级:能够熟练运用面向对象的思想进行编程,并具备一定的调试能力。 - 高级:能够独立完成复杂功能模块的设计与实现,了解设计模式。 - 资深/专家:能够对现有...
- **调试过程中的心态调整**:无论是调试电路还是软件程序,都需要耐心地检查每一个细节,有时候可能只是因为一个很小的错误导致整个系统无法正常运行。 - **培养严谨的科学态度**:在实验中养成仔细记录数据的...
在这一天,实习生通常会被介绍给团队成员,并听取主管关于公司概况的简介。了解公司的业务范围、主营业务、市场定位等基本信息对于快速融入团队非常重要。 - **心态调整**:从校园到职场的转变可能会让部分学生感到...
如果是使用电子设备,推荐使用支持标记、分类等功能的应用程序,便于日后检索和回顾。 **1.2 每天复制笔记** 为了提高效率,可以预先设置一个晨间日记的模板,每天通过复制前一天的日记模板来开始新的一天。这种...
4. **清晰表达**:在回答问题时,清晰地阐述你的思考过程和分析方法。 5. **SQL编写**:练习编写各种查询,如JOIN、子查询和聚合函数,以应对可能的现场编程测试。 6. **心态调整**:保持冷静,即使面对未知问题也能...
1. **学习脚本语言**:如Python或Ruby,这些语言能够帮助初学者快速上手编程,并能够用于开发实用的小型应用程序。通过实践文本处理、文件系统操作、数据库交互等项目,进一步巩固基础知识。 2. **掌握编程工具**:...