【开源系列】三国演义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  

 

原文地址:https://www.cnblogs.com/zc22/p/2034629.html