zoukankan      html  css  js  c++  java
  • 简化版可用于多线程的logger

    logger 嘛要高效,要简单。废话不多话。

    GitHub 地址 https://github.com/goldli/logger


    本文所说的logger使用System.Logger做为NameSpace;

    一、对象说明
        Dll里logger共有两类对象
        1、Logger 日志输出控件类。负责启用与停用日志功能。
        2、Log 日志记录类。
        
    二、启用/停用日志
        Logger.Instance.Start();
        Logger.Instance.Stop().Dispose();
        
        Logger本身继承自 IDisposable 接口。在Stop后可以调用Dispose来释放资源。
        
    三、记录日志
        需要实例化一个Log对象:使用Logger.Instance.GetLog("日志文件夹名称");
        记录日志的方法
        1、普通写法 WriteLog("日志内容");
        2、带有顺序序号的方式 Write("日志内容",起始顺序号);
        若 起始顺序号为 0 ,则Log内容会进行 +1 处理。
        若 起始顺序号不为 0 ,则Write方法以此顺序号开始进行 +1 处理
        
    四、日志目录结构
        Log类本身有Folder属性与FileName属性
        Folder可以用于指写日志保存的位置,若为指定则与当前调用的主程序exe同目录下的log目录.
        FileName不是日志文件名称。而是日志文件所在的文件夹名称。具体的日志文件是以小时来命名的。
        最终文件目录结构为
        x:log{FileName}{yyyy-MM-dd}{hh}.log
        或
        x:{FileName}{yyyy-MM-dd}{hh}.log
        
    五、示例
        1、普通示例,请参考
        2、多线程示例
        2.1声明Logger对象
            internal Logger Logger = Logger.Instance;
            
        2.2将Logger传入线程对象
                var task1 = new task
                {
                    Config = config,
                    Logger = Logger
                };
        2.3创建线程
            Logger.Start();
            _patrolor = new Thread(Tick){IsBackground = true};
            _patrolor.Start(task1);
        2.4 在线程中创建Log
            class Task
            {
                protected override void Execute(Task task)
                {
                    _logger = task.Logger.GetLog("AlertService");
                    _logger.WriteLog("begin");
                    Do(task);
                    _logger.WriteLog("end");
                }
            }
    六、注意事项
        在线程处理过程中,我们会用于各种数据。一定要记住的是 线程处理过程中使用的数据是从object state参数传入进行来。而非来自于处理过程所在的类

  • 相关阅读:
    sql 导出大数据量 到excel
    完美输出textarea样式(换行,空格)
    Caliburn.Micro tips
    客户端向服务器提交数据,表单形式
    sevlet生命周期
    Intent(简单介绍)
    return常用用法
    Activity的生命周期
    android.util.AndroidRuntimeException: requestFeature() must be called before adding content
    ListView点击事件不响应。
  • 原文地址:https://www.cnblogs.com/goldli/p/4484700.html
Copyright © 2011-2022 走看看