`
pumaboyd
  • 浏览: 248396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

.NET 日志记录模块

阅读更多

327_67888 有朋友突然问我是不是改行搞SEO了。当时听了有点惊奇,原来是blogs上文章最近都是和SEO相关的 (*^__^*)。问问朋友现在忙些什么东西,他说在做一些日志记录的东西,问我有没有什么好的建议(log4.net开源组件不错)。还是具体问了朋友的一些需求,这个和我们的广告统计日志相识。我就想到写这篇文章了,也避免一下,大家认为我SEO去了。

需求及设想:

1:统计每日用户的点击量。
2:考虑到并发和数据库的压力。数据先写入内存,在一定间隔时间将数据变化统一写入数据库。
3:需要考虑扩充统计不同的业务类型,比如 广告统计、注册统计。

业务分析:


业务上有扩展统计类型的需要,那么必然要定义一个服务接口:
Interface IDayLog
服务需要实现的方法:
Add(); 添加日志记录到内存
Save();保存日志记录到数据库
Clear();清空内存日志记录 

 

根据目前业务需求,定义两个业务类:
RegDayLog:IDayLog    每天的登录日志统计
AWDayLog:IDayLog    每天的广告日志统计


这里具体展开一下AWDayLog的系统记录,根据业务需求,需要在子类上添加几个属性:
AWID    需要记录的广告ID
Count    广告ID的增量值
static Dictionary<int, int> adWords    广告的内存数据

 

这些和业务相关类都有了,接下来我们需要一个控制类(和具体业务无关,用来控制业务流程)
static class DayLogHelper   定义几个和业务相关的属性和方法:
static Dictionary<String, IDayLog> dayLogList   当前加载的日志业务列表
CreateLog()    负责加载需要添加日志记录的业务模块
Start()       负责启动日志记录
FindLog(string logName)    根据logName找到相应的日志业务模块

LogName枚举   系统中日志的类型(这个枚举可以通过配置进行忽略)

具体的类图:

dp_log_080223

从UML类图中我们可以得到如下信息:

1:Client类为具体的调用类,从类的关系图中可以很清楚的看到,Client只和LogName 枚举、DayLogHelper、IDayLog 有依赖关系。这就说明,我们在模块的外部已经不依赖具体的业务类了,既然这样,那么业务发生变化也不会影响到Client调用。松耦合了。

2:可以改进的地方。首先看图中标记《3》说明如果要新增业务类,就要要改动DayLogHelper。《1》《2》《3》 这三条依赖关系是需要new 具体的业务对象时产生的。那么如何删除这3条依赖关系呢?如何达到解耦的目的呢?配置文件,通过读取配置文件和反射的方式来创建对象。也就是说,如果我们新增加一个“D币日志统计”,我只要新增一个DCashDayLog类、WebConfig添加一条配置文件就可以了,对日志模块不需要做其他处理。当然Web层上需要调用DayLogHerlper添加具体的日志数据,但这和模块本身已没关系了。

总结

线上运行的日志模块和这个也差不多,具体的实现代码就不写了。其实说白了就是通过Interface隐藏了具体的业务类型,通过DayLogHelper 封装了具体业务类的创建过程。写累了,喝茶去了!

分享到:
评论

相关推荐

    基于.Net的登录模块

    在实际应用中,登录模块还可能涉及到错误处理和日志记录,以捕获和记录可能出现的问题。此外,为了提升用户体验,还可以实现记住密码、自动填充、忘记密码等功能。安全方面,通常建议使用HTTPS来传输登录信息,以...

    ASP.NET开发典型模块大全

    7. **第七章:ASP.NET的异常处理与日志** - 异常处理是软件开发中的关键部分,这一章会教如何捕获和处理错误,以及使用如Elmah这样的日志库记录应用程序的运行状况。 8. **第八章:ASP.NET的部署** - 最后一章通常...

    .net日志代码

    `.NET日志代码`这个主题涉及到如何在.NET环境中编写和管理日志,包括不同层次的日志记录,以及在实际应用中的常见操作。 一、日志的基本概念 日志是程序运行过程中的事件记录,它通常包含时间戳、事件级别(如错误...

    ASP.NET(C#)日志记录系统

    这个系统在登录模块的基础上增加了日志记录功能,使得开发者可以更全面地了解应用的运行状态和用户活动。 1. **日志记录功能**: 日志记录是软件开发中一种常见的调试和监控手段,它能够记录应用程序在运行时的...

    ASP.NET开发典型模块大全(1DVD)第27章

    9. **异常处理与日志记录**:学习如何优雅地处理程序中的异常,以及如何设置和使用日志记录,以便于调试和监控应用的运行状态。 10. **优化与性能调优**:探讨如何提高ASP.NET应用的性能,包括减少HTTP请求数、压缩...

    LOG4.net日志控件使用示例项目

    LOG4.net是一个强大的日志记录框架,源自Java世界的log4j,被广泛应用于.NET平台的软件开发中。它提供了一套灵活的日志记录方案,帮助开发者在应用程序中方便地记录调试信息、错误信息以及其他关键性日志数据。本...

    ASP.NET开发典型模块大全(1DVD)第三十一章

    9. **错误处理与日志记录**:学习如何在ASP.NET中有效地捕获和处理异常,以及设置日志记录,以确保系统的稳定性和可追踪性。 10. **性能优化**:包括缓存策略、数据库查询优化、减少HTTP请求等,提升ASP.NET应用的...

    ASP.NET启明星工作日志系统的设计

    在这个系统中,开发者利用ASP.NET框架的强大功能,为员工提供了一个便捷、高效的工作日志记录和管理工具。下面我们将深入探讨这个系统的相关知识点。 1. ASP.NET框架:ASP.NET是微软公司推出的Web应用程序开发框架...

    ASP.NET投票系统模块,网上投票

    10. **错误处理与日志记录**:良好的错误处理和日志记录机制是任何系统必备的,它们可以帮助开发者追踪并解决可能出现的问题,确保投票系统的稳定运行。 总的来说,ASP.NET投票系统模块是构建在ASP.NET平台上的一个...

    简单vb.net 登陆模块

    在VB.NET中创建一个登录模块是一项基础但至关重要的任务,它是任何应用程序...随着技能的提升,可以逐步添加更复杂的功能,如多用户支持、角色管理、登录日志记录等。继续深入学习,你将能够构建更强大、更安全的系统。

    ASP.NET通用模块及典型系统开发实例导航

    1. ASP.NET通用模块:这些模块是可复用的组件,通常包含了常见的Web应用功能,如用户身份验证、权限管理、日志记录、缓存处理、邮件服务等。学习通用模块有助于提升开发效率,减少重复工作,并确保代码的质量和一致...

    asp.net开发典型模块开发大全(27章-32章)

    32章:可能专注于ASP.NET的部署和维护,包括IIS配置、发布策略、错误处理和日志记录,以及如何进行性能监控和故障排查。这部分内容对于确保应用程序在生产环境中的稳定运行至关重要。 这些章节的深入学习将使开发者...

    ASP.NET开发典型模块大全06

    5. **错误处理与日志记录**:在开发过程中,有效的错误处理和日志记录是不可或缺的。ASP.NET提供全局异常处理机制,通过HttpModule或Global.asax文件中的事件处理程序进行捕获和处理。同时,结合如Log4Net这样的日志...

    asp.net电子相册模块源码

    8. **错误处理与日志记录**:为了确保系统的稳定性和可维护性,源码中应包含错误处理机制,比如异常捕获和日志记录。 9. **SEO优化**:为了提高搜索引擎可见性,可能包含元标记管理、URL重写等SEO相关的实践。 10....

    asp.net工作日志管理系统

    很简单的一个功能,就是企业员工提交工作记录的 系统用户有三种角色 一、管理员,最大权限,可以管理任何栏目 二、BOSS,可以添加、修改、删除自己的日志外,还可以查看他人的日志 三、用户,只能对自己的...

    精通ASP.NET 2.0典型模块设计与实现 PDF

    8. 错误处理和日志记录:理解ASP.NET 2.0的异常处理机制,学会设置CustomErrors,以及使用EventLog或第三方库进行日志记录,有助于快速定位和解决问题。 9. AJAX支持:ASP.NET 2.0引入了AJAX技术,通过UpdatePanel...

    精通asp.net2.0的典型模块的一些例子

    最后,C22可能会讲解如何优雅地处理程序中的错误,包括使用CustomErrors配置,以及集成日志记录,确保系统的稳定性和可维护性。 通过这些实例,你不仅能够学习到ASP.NET 2.0的基础知识,还能了解到如何将这些知识...

    ASP.NET开发典型模块大全(1DVD)

    10. **调试与日志记录**:熟练使用Visual Studio的调试工具,以及集成日志记录框架如Log4Net或NLog,有助于定位和解决运行时问题。 这个"ASP.NET开发典型模块大全(1DVD)"可能涵盖了以上各个领域的知识,并且提供了...

    ASP.NET开发典型模块大全(C#)1-2

    9. **错误处理与日志记录**: 了解如何在ASP.NET中处理异常,设置全局错误处理,以及如何集成日志记录系统,如log4net。 10. **单元测试与持续集成**: 学习如何使用Visual Studio或其他工具进行单元测试,确保代码...

    VB.NET完整数据库+皮肤的简单日志管理系统源码

    日志管理系统的功能可能被组织为多个类,每个类对应一个特定的功能模块,如用户管理、日志记录、查询等。通过事件驱动的方式,用户在界面上的操作会触发相应的代码执行。 这个源码项目对于初学者来说,是一份很好的...

Global site tag (gtag.js) - Google Analytics