转自: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

log4delphi使用(转)的更多相关文章

  1. Log4delphi使用心得

    因为delphi不是我的主力开发工具,所有一直没有使用一个正式的日志组件.偶尔要记日志时,就复制同事的一个简单的文件日志函数.现在又要用到delphi日志了,决定找个通用的日志组件,造福共事的Delp ...

  2. Delphi 7下使用Log4Delphi 0.8日志组件

    Log4Delphi是一个开放源码项目,旨在制作用于Borland的Delphi高质量实用的日志套件,是基于Apache Software Foundation的log4j包. 安装:         ...

  3. Delphi 控件大全

    delphi 控件大全(确实很全)   delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar ...

  4. delphi 控件大全(确实很全)

    delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoC ...

  5. Delphi的日志库

    1. 安装 Log4D下载: 官网地址 LoggerPro下载 GitHub地址 特点: log4d简单易用.性能稳定 LoggerPro貌似功能很强大,只是没有详细的文档,懒得翻源码 安装步骤 Lo ...

  6. delphi 控件查询

    //老古董,以前这些东西太多了,收藏的没过来,只好粘贴至此,当然不是本人整理的. delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org ...

随机推荐

  1. google map放大缩小地图去除 ctrl+,直接用鼠标放大缩小

    如图,最近突然需要ctrl+鼠标滚动,才可以放大缩小地图: 这个问题也困扰了我很久,这个解决办法也是在看到一个帖子才发现的,所以记录一下,如图: map = new google.maps.Map(d ...

  2. oracle的(+)

    (+)就是连接譬如SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* from a right join bSELECT a.*, b.* ...

  3. Anroid 解决小米和魅族不能在mac上调试

    第一种方法 1.mac->关于本机->系统报告->usb->copy厂商ID** 2.cmd->echo " 0x2a45" >> ~/. ...

  4. [Canvas]走近的女孩

    动态效果请点此下载文件并使用Chrome或者FireFox浏览器观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> ...

  5. Android 为何比 iOS 卡?【转载】

    Android 卡是必须的,当你的手机装了 20 多个 app,那不卡才叫见鬼了呢,我手机微信都打不开,手机直接自动重启啦~哪种东西生来就是完美的呢?即便是台式机,也是越用越慢.换句话,如果没有特别原 ...

  6. mysql 表分区 查看表分区 修改表分区

    原文地址:http://blog.csdn.net/feihong247/article/details/7885199 一.       mysql分区简介 数据库分区 数据库分区是一种物理数据库设 ...

  7. 为javascript设置默认参数值

    javascript(js)中如何为函数设置默认参数值,下面提供几种方法供参考. 第一种方法: function example(a,b){ var a = arguments[0] ? argume ...

  8. PAT《数据结构学习与实验指导》实验项目集 2-09 2-10 2-11 2-12 2-13

    pat 2-09 装箱问题模拟 #include<cstdio> #include<set> #include<vector> using namespace st ...

  9. 【linux】ubuntu中上下左右键变为^[[A^[[B^[[D^[[C问题处理

    问题现象: 使用上下左右键时,结果为 ^[[A^[[B^[[D^[[C,如图: 原因在于ubuntu系统自带的 vi 不完整导致. 解决方法:安装完整的vi $ sudo apt-get instal ...

  10. 微信小程序 - 动态背景图片实现

    很简单-就两步 wxml(遍历style的background-image路径即可) wxss(.ab)