找回密码
 立即注册
首页 业界区 业界 一个日志框架的开源,有些不错的创意。 ...

一个日志框架的开源,有些不错的创意。

挽幽 2025-5-29 15:01:02
题外篇

曾经有段时间,在公司维护IBM ds8000系统,就是服务器。当时的工作就是分析系统的日志,查看是否有运行错误。虽然有一些脚本分析工具,但是一旦发生了问题,还是靠人力,任何工具都没有用。
当时,如果发现了问题,首先就是把最近的打包日志下载到公司的ftp,然后打开一个pad,找问题发生的时间的所有相关日志,帖在一起。
如果没有经验,就会把所有模块的日志都帖在一起,慢慢看,那简直就是sb了。有经验的工程师,就会先分析有可能出现问题的模块,然后解压日志再合并查看。
当时觉得这样的工作非常的无聊,但是又没有好的思路。现在,总算给我找到解决方法了。
前言

本框架参考了 Microsoft.Enterprise.lib, log4net,同时集成了一些比较先进的日志思想和技术,能够方便程序开发以及后期的维护。
与此技术相关的讨论区在:
http://groups.google.com/group/pixysoft
优势与特点


  • 伪XML技术(Pesudo XML):使用伪xml结构记录日志,实现了日志的结构化存储。同时对.net的xml操作部分全部重写,使io性能接近文件流的处理,既摒弃了xml结构化带来的性能问题,又不丧失xml的结构化存储、查询的特性。
  • 并行日志技术(Parallel Logging):采用了AOP技术,能够对某一类的入口、出口、异常进行全方位跟踪,并且记录输入参数、传出参数;实现代码运行与日志记录的平行(我称其为 Parallel Logging, 并行日志技术)。使用此技术,在项目开发中能够得心应手。
  • 异常报告技术(Exception Report):当发生异常的时候,能够查询程序调用的堆栈,并且收集此调用过程中相关的其他日志,进行日志合并,更加方便系统debug。
  • 日志查询技术(Log Searching):支持时间段查询、日志主键查询、日志级别查询;支持跨文件查询;支持不同模块日志合并查询,查询性能接近文件流操作。
日志片段展示

以下是一个正常的日志记录:
1.gif
2.gif
代码
hello
 
以下是关于异常的日志记录,能够捕获所有调用的堆栈:
 
3.gif
4.gif
代码

hello




 
一段并行日志记录:
5.gif
6.gif
代码
Pixysoft.Framework.Logs.dll:ixysoft.Framework.Logs._testdriven.Hello.Helloworld(String para1, Hello para2, String[] paras3)
::para1 = null;
::para2 = null;
::paras3 = System.String[].Count = 0;

 
演示代码

7.gif
8.gif
代码 using System;
using System.Collections.Generic;
using System.Text;

namespace Pixysoft.OpenSource.Logs.TestDriven
{
    public class testcase
    {
        /// 
        /// summary:
        /// 测试写入日志
        /// 
        /// output: 
        /// 在debug目录下面出现helloworld的目录,里面有helloworld.log的日志
        /// 
        public void test001()
        {
            for (int i = 0; i 
您需要登录后才可以回帖 登录 | 立即注册