日志系统(二)改进与应用
2012-04-18 23:52
239 查看
上次简单地把日志系统从windows上移植到linux中,并修复其中bug,使其功能基本可行。
现在我又做了一个小小的socket应用程序,将日志系统嵌入进去,基本上能使用,但仍然存在不足,经过一系列修复后,自我感觉算是能小用一把了。
日志系统的改进:
1. 用锁机制实现了多线程对日志接口的异步调用。
2. 增加根据日志等级输出打印信息的功能,外部应用程序能控制日志打印的等级。
3. 增加定时器功能,每隔5秒钟会自动将缓存中的日志信息输出到文件中。这样从文件中看到的信息就会比较全面和完整。
socket应用程序的设计:
主要是server端:
listen将请求放入等待队列中
accept会从等待队列中取出一个请求,生成clientFd返回。
根据这样的linux的两个标准函数,我有如下思路:
1. 首先开辟一个数组,用于存放clientFd
2. 在主线程A里不断循环尝试accept,将生成clientFd放入到数组中。
3. 主线程中生成新线程B,用于循环读取数组的请求,然后做出相应的处理。
4. 这时需要注意线程A,B之间的同步与互斥访问数组。同步关系如下:
A线程发现数组已满,无法继续放入clientFd,则等待。当数组为空时,A线程放入一个fd之后,则发出唤醒B线程的signal。
B线程发现数组已空,无法继续读取clientFd,则等待。当数组为满时,B线程删除一个fd之后,则发出唤醒A线程的signal。
当然我的实现要比这个稍微复杂一些,毕竟考虑的东西更多,上面只是基本的说明,感觉像是在做试卷一样,呵呵。
我把代码放出来,大家可以到我的博客资源里面下载。标题:日志系统
写了这么多,是想找到编程爱好者,一起探讨。如果你是,欢迎加我QQ:402320131
现在我又做了一个小小的socket应用程序,将日志系统嵌入进去,基本上能使用,但仍然存在不足,经过一系列修复后,自我感觉算是能小用一把了。
日志系统的改进:
1. 用锁机制实现了多线程对日志接口的异步调用。
2. 增加根据日志等级输出打印信息的功能,外部应用程序能控制日志打印的等级。
3. 增加定时器功能,每隔5秒钟会自动将缓存中的日志信息输出到文件中。这样从文件中看到的信息就会比较全面和完整。
socket应用程序的设计:
主要是server端:
listen将请求放入等待队列中
accept会从等待队列中取出一个请求,生成clientFd返回。
根据这样的linux的两个标准函数,我有如下思路:
1. 首先开辟一个数组,用于存放clientFd
2. 在主线程A里不断循环尝试accept,将生成clientFd放入到数组中。
3. 主线程中生成新线程B,用于循环读取数组的请求,然后做出相应的处理。
4. 这时需要注意线程A,B之间的同步与互斥访问数组。同步关系如下:
A线程发现数组已满,无法继续放入clientFd,则等待。当数组为空时,A线程放入一个fd之后,则发出唤醒B线程的signal。
B线程发现数组已空,无法继续读取clientFd,则等待。当数组为满时,B线程删除一个fd之后,则发出唤醒A线程的signal。
当然我的实现要比这个稍微复杂一些,毕竟考虑的东西更多,上面只是基本的说明,感觉像是在做试卷一样,呵呵。
我把代码放出来,大家可以到我的博客资源里面下载。标题:日志系统
写了这么多,是想找到编程爱好者,一起探讨。如果你是,欢迎加我QQ:402320131
相关文章推荐
- 基于Flume的美团日志收集系统改进和优化
- 构建流式计算卖家日志系统应用实践
- cocos2dx Android 多级日志系统应用
- 构建流式计算卖家日志系统应用实践
- 基于Flume的美团日志收集系统(二)改进和优化
- syslog 系统日志应用
- WCF 项目应用连载[2] - 创建Lig日志系统
- 应用系统日志采集解决方案(转)
- Smobiler基于.NET框架开发移动应用内部系统—工作单功能(开发日志七)
- Smobiler基于.NET框架开发移动应用内部系统(开发日志一)
- 基于Flume的美团日志收集系统(二)改进和优化
- Android Download 下载功能深入研究(四) : 系统应用DownloadProvider的改进
- ELK 大规模日志实时处理系统应用简介
- Log4net 框架系列:log4net日志文件在asp.net中的应用实例-记录系统错误
- 基于Flume的美团日志收集系统(二)改进和优化
- ORACLE应用系统中对日志表的倒出备份操作的批处理
- 基于Flume的美团日志收集系统(二)改进和优化
- 基于Elasticsearch+Fluentd+Kibana的日志收集分析系统搭建与应用
- asp.net中使用Global.asax文件中添加应用出错代码,写入系统日志文件或数据库
- Log4net 框架系列:log4net日志文件在asp.net中的应用实例-记录系统错误