zoukankan      html  css  js  c++  java
  • log4delphi使用(转)

    转自:http://blog.csdn.net/brightgems/article/details/814042

    Log4d是apache下的一个delphi开源子项目,它的设计思想来源于Log4j,但并不是Log4j的子项目,主要目标是开发环境与生产环境下的日志输出。

    一、下载
    https://sourceforge.net/project/showfiles.php?group_id=145326
    二、安装
    将源代码下的log4delphi/src/delphi/log4delphi_D6.dpk包安装在IDE下。
    三、基本使用方法
    1.在dpr文件的source 中创建Logger实例(TConfiguratorUnit.doBasicConfiguration)
    如:
      Application.Initialize;
    //使用运行期默认配置,输出日志文件名是'log4delphi.log’
      TConfiguratorUnit.doBasicConfiguration;
      Application.CreateForm(TForm1, Form1);
      Application.Run;  
    2.配置Logger
    var
       logger : TLogger;
    begin
       logger := TLogger.getInstance;
       logger.setLevel(TLevelUnit.INFO);
       logger.addAppender(TFileAppender.Create('C:/test.log'));  
    3.在你需要的地方写Log信息
    根据Level的类型,有五种类别的Log信息
    logger.debug('Debug message');
       logger.info('Info message');
       logger.warn('Warn message');
       logger.error('Error message');
       logger.fatal('Fatal message');
    4.释放Logger实例
    Finalization
        TLogger.freeInstances;
    四、更深入的介绍
    Log4d由五个核心的components组成:Levels, LoggingEvents, Layouts, Appenders and Loggers.
    1. Levels。每一个Log event 都有一个优先级,Levels就是用来表示优先级的。因此,每一个优先级其实就是一个数值常量,可用于比较。
    Level有以下几种:
    TLevelUnit.OFF
      TLevelUnit.FATAL
      TLevelUnit.ERROR
      TLevelUnit.WARN
      TLevelUnit.INFO
      TLevelUnit.DEBUG
      TLevelUnit.ALL
    2.LoggingEvents.当产生一个Log信息或Logger实例创建时发生。
    Logging 包含的重要信息有:发生时间,消息内容,已经发生的异常及优先级。
    3. Layouts.它负责LoggingEvents的格式化输出样式。
    The TLayout 有以下方法:
      function format(event : TLoggingEvent) : String; Virtual; Abstract;
      function getContentType() : String; Virtual;
      function getHeader() : String; Virtual;
      function getFooter() : String; Virtual;
      function ignoresException() : Boolean; Virtual;
    常用的Layout有:
    l TSimpleLayout
    输出内容如:DEBUG - Button Clicked
    l TPatternLayout.它为格式化输出提供了更多的控制。格式化的模式与Format函数相似,即以%开头,接着跟修饰符和转换符。如:
    Pattern="%d [%5p] %m%n"
    产生的输出是
    12/20/2005 4:53:33 PM [DEBUG] Debug message
    12/20/2005 4:53:33 PM [ INFO] Info message
    12/20/2005 4:53:33 PM [ WARN] Warn message
    12/20/2005 4:53:33 PM [ERROR] Error message
    12/20/2005 4:53:33 PM [FATAL] Fatal message
    含义: %d 日期
     %m 消息内容
     %n 换行
     %p 优先级
     %e 异常的类名与message
     %L Logger的名称
    4. Appenders.表示输出的目的是控制台,文件,还是数据库。
    常用的有TFileAppender, TDBAppender

    五、配置文件
    1.程序里加载配置文件
    Application.Initialize;
      TConfiguratorUnit.doPropertiesConfiguration('log4delphi.properties');
      Application.CreateForm(TForm1, Form1);
      Application.Run;  


    2.写配置文件'log4delphi.properties'
    l 控制输出的信息类别
    # Set this to true to turn on Log4Delphi's internal
    # logging
    log4delphi.debug=false 
    log4delphi.info=false 
    log4delphi.all=true
    l Root Logger
    # Set the root logger's priority threshold to DEBUG and assign an
    # appender named "fileAppender" to it.
    log4delphi.rootLogger=DEBUG, fileAppender
    l 配置Appender
    # Specify the appender class for fileAppender.
    log4delphi.appender.fileAppender=TFileAppender
        
    # Specify which file fileAppender should use.
    log4delphi.appender.fileAppender.File=app.log
    l 设置Layout
    # Specify the layout class for fileAppender.
    log4delphi.appender.fileAppender.layout=TSimpleLayout  
    # Use TPattern layout
    log4delphi.appender.fileAppender.layout=TPatternLayout
    log4delphi.appender.fileAppender.layout.pattern=%d [%5p] %m%n

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Qt 自定义model实现文件系统的文件名排序
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/3774856.html
Copyright © 2011-2022 走看看