• 【开源系列】三国演义LBS (六)源码:基础框架:日志


    前言

    -----------------------------------------------

    相关讨论组入口: http://www.pixysoft.net/ (点击进入)

      

     

     

    功能简介:

    -----------------------------------------------   
    使用了XML进行日志记录,方便日后进行日志分析汇总。

    支持日志文件打包,能够减少磁盘空间。

    支持日志提取,序列化操作,方便发送核心日志到服务器。 

     

     

    快速入门
    -----------------------------------------------   

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Pixysoft.Framework.Logs
    {
        
    class quickstart
        {
            
    /// <summary>
            
    /// 使用默认配置 操作日志
            
    /// </summary>
            public void start_001()
            {
                ILogger logger 
    = Logger.GetLogger();
                logger.Info(
    "hello, {0}.""world");

                
    // 在bin/Debug/LOG 目录下会多出一个PIXYSOFT目录,包含PIXYSOFT.LOG文件,记录了日志

                
    //<log level="info" time="2011-05-02 18:35:02:359" id="a5314c10-0e73-4714-becc-00be200e0438" module="">
                
    //hello, world.
                
    //</log>
            }

            
    /// <summary>
            
    /// 使用代码配置 操作日志
            
    /// </summary>
            public void start_002()
            {
                ILogger logger 
    = Logger.GetLogger("start_002""module_001");
                logger.Info(
    "hello2, {0}""world");

                
    // bin/Debug/LOG/START_002/目录下多出 START_002.LOG, 内容为

                
    //<log level="info" time="2011-05-02 22:40:39:140" id="a4d90477-e780-4d52-987f-21356a7aa75e" module="module_001">
                
    //hello2, world
                
    //</log>

                
    // 即日志包含了module信息,方便日志分析进行模块提取
            }

            
    /// <summary>
            
    /// 读取配置文件初始化
            
    /// </summary>
            public void start_003()
            {
                LogConfiguration config 
    = new LogConfiguration();

                
    //根配置 文件必须是pixysoft
                config.Filename = "pixysoft";
                config.LogCapacity 
    = 1024;//配置文件大小,单位是字节
                config.LogLevel = LogLevel.INFO;//配置记录级别
                config.PrintToConsole = true;// 是否显示在console

                
    //子节点配置 默认使用根节点配置,如果子节点配置与根节点不一致,才使用子节点配置
                config.Settings.Add(new LoggerSetting());
                config.Settings[
    0].Filename = "pixysoft2";
                config.Settings[
    0].LogLevel = LogLevel.FATAL;

                Logger.Initialize(config);


                
    //使用日志

                Logger.GetLogger(
    "pixysoft").Info("我们能看到这个日志");
                Logger.GetLogger(
    "pixysoft2").Info("我们不能看到这个日志");//由于pixysoft2使用了子节点配置,因此info级别不会被记录
                Logger.GetLogger("pixysoft2").Fatal("我们能看到这个日志");
                Logger.GetLogger(
    "pixysoft3").Debug("我们不能看到这个日志");//由于pixysoft3没有预先配置,因此使用了pixysoft的配置
                Logger.GetLogger("pixysoft3").Info("我们能看到这个日志");
            }

            
    /// <summary>
            
    /// 对日志文件进行解析
            
    /// </summary>
            public void start_004()
            {
                Logger.GetLogger().Info(
    "hello");
                Console.WriteLine(Logger.GetLogger().GetRecentReport(
    1000 * 60 * 60, LogLevel.INFO).Serialize(true));

                
    //<report time="2011-05-02 23:07:50:437" id="N/A (recent format)" timespan="3600000" timefrom="2011-05-02 22:07:50:437" timeto="2011-05-02 23:07:50:437">
                
    //  <document>
                
    //    <log id="5b598fc6-8d59-4fa4-8348-7a34db1fa042" time="2011-05-02 23:06:17:484" level="INFO" filepath="xxxx\bin\Debug\log\">hello</log>
                
    //  </document>
                
    //</report>
            }


            
    public void start_005()
            {
                
    //获取指定ID的日志在+-1000毫秒范围内的日志文件, 用于日志搜索跟踪
                Logger.GetLogger().GetReport("5b598fc6-8d59-4fa4-8348-7a34db1fa042"1000);
                
    //获取指定ID的日志项目
                Logger.GetLogger().GetRecord("5b598fc6-8d59-4fa4-8348-7a34db1fa042");
                
    //日志文件打包
                Logger.GetLogger().Backup();
            }
        }
    } 

     

     

     

    下期预告:

    -----------------------------------------------    

    Pixysoft.Framework.Configurations 通用配置框架。

    除了提供比微软更加方便的xml配置外,还提供超高性能的XML序列化、反序列化操作(完全基于IL),是核心框架的基础。

     

    附件下载

    -----------------------------------------------    

    Pixysoft.Framework.Logs 打包下载: 


    SVN:

    http://qun.qq.com/air/#95755843/bbs  

     

  • 相关阅读:
    BOM、DOM
    logstash进程杀不掉
    awk正则匹配nginx日志【原创】
    14个最常见的Kafka面试题及答案【转】
    gpk-update-icon占用CPU及清除【原创】
    tracert和traceroute使用
    Centos 6.4搭建git服务器【转】
    ELK&ElasticSearch5.1基础概念及配置文件详解【转】
    Nginx实现404页面的几种方法【转】
    MySQL数据库的“十宗罪”【转】
  • 原文地址:https://www.cnblogs.com/zc22/p/2034629.html
Copyright © 2020-2023  润新知