有没有人能推荐一个好用的、免费的 Delphi 日志框架?它应该易于使用,并支持不同的“日志写入器”,包括纯文本、数据库和网络。
哪个日志记录库更好?中提到了以下内容,其中只有最后两个是免费的。
我已获得更新休眠的Log4Delphi项目的访问权限,并将过去4年的错误修复和补丁整合到了最新的0.8版本中,该版本已在Source-forge上发布。我在生产中使用这个库,发现它非常稳定、可靠且易于使用。
有一个适用于Delphi的新日志框架,只需使用一个文件(nxlogging.pas)即可。nxlogging是一组漂亮、轻量、强大且易于使用的类,就像log4d(记录器、格式化程序)一样。它包括文件记录器(滚动文件、单一文件等...)和tcp记录器,因此您可以将日志转发到中央日志服务器。
有Log4D,这是 Java Log4J日志框架 的 Delphi 另一个移植版本,可以在 Sourceforge 找到。
可以在 CodeCentral 和 这里 中找到其架构描述。
在线帮助文件可在 http://cc.embarcadero.com/item/16446 上获得。
它目前基于 log4j 1.2.12,使用相当活跃且非常易用。 它包括 TLogODSAppender、TLogStreamAppender、TLogFileAppender、TLogRollingFileAppender。
以下示例项目创建了一个ODS appender。如果您在IDE中运行它,日志消息将出现在“事件日志”窗口中。program Log4Dexample;
{$APPTYPE CONSOLE}
uses
Log4D,
SysUtils;
var
Logger: TLogLogger;
begin
try
// basic configuration - creates a TLogODSAppender (ODS = OutputDebugString)
TLogBasicConfigurator.Configure;
// set the log level
TLogLogger.GetRootLogger.Level := Trace;
// create a named logger
Logger := TLogLogger.GetLogger('exampleLogger');
// write log messages
Logger.Fatal('fatal output');
Logger.Error('error output');
Logger.Warn('warn output');
Logger.Info('info output');
Logger.Debug('debug output');
Logger.Trace('trace output');
ReadLn;
except
on E:Exception do
begin
Writeln(E.Classname, ': ', E.Message);
ReadLn;
end;
end;
end.
unit LogConsoleAppender;
interface
uses
Log4D;
type
{ Send log messages to console output. }
TLogConsoleAppender = class(TLogCustomAppender)
protected
procedure DoAppend(const Message: string); override;
end;
implementation
{ TLogConsoleAppender }
procedure TLogConsoleAppender.DoAppend(const Message: string);
begin
if IsConsole then
Write(Message);
end;
initialization
RegisterAppender(TLogConsoleAppender);
end.