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