Может ли кто-нибудь намекнуть мне хорошую, бесплатную фреймворку Delphi? Он должен быть простым в использовании, и он должен поддерживать разные "авторы журналов", включая простой текст, базу данных и сеть.
Хорошая, бесплатная база данных Delphi
Ответ 1
Какая библиотека ведения журнала лучше? упоминает, какие из следующих двух являются бесплатными.
Ответ 2
Я знаю, что это не бесплатно - но стоит того, чтобы деньги: CodeSite от Raize Software. Качество имеет свою цену!: -)
Мне всегда нравилось работать с CodeSite, особенно часто добавлялась возможность добавлять практически к любому типу объектов в журнал без огромных преобразований в строковый формат.
Опять же: не бесплатно, но стоит его цена в золоте, если вы действительно серьезно относитесь к регистрации качества продукции и просмотру этих журналов.
Марк
Ответ 3
Мне предоставлен доступ для обновления бездействующего проекта Log4Delphi, и я обновил 4 года исправлений и исправлений в последней версии 0.8, доступной в Source-forge. Я использую эту библиотеку в производстве и нашел ее очень стабильной, надежной и простой в использовании.
Ответ 4
Я тоже большой поклонник CodeSite, но если вы ищете бесплатно, как насчет OutputDebugString с помощью Delphi IDE или DebugView от SysInternals.
Ответ 5
Другой альтернативой Codesite является Overseer, который является открытым исходным кодом и является частью nexus project, но стоит отдельно, поэтому вам не нужно использовать их фреймворк.
Ответ 6
Для Delphi существует еще одна новая структура ведения журнала, которая приходит в одном файле (nxlogging.pas). nxlogging - хороший легкий и мощный набор классов, таких как log4d (appenders, formaters), но гораздо проще использовать tu. Он включает в себя файловые приложения (скользящие файлы, все в одном и т.д.) И приложение tcp, поэтому вы можете пересылать свои журналы на центральный сервер.
Ответ 7
Существует Log4D, другой порт Java система ведения журнала Log4J для Delphi в Sourceforge.
Страница проекта Log4D в sourceforge
Описание его архитектуры можно найти на CodeCentral и здесь.
Файлы справки доступны в Интернете по адресу http://cc.embarcadero.com/item/16446.
В настоящее время он основан на log4j 1.2.12 и довольно активен и очень прост в использовании. Он включает в себя TLogODSAppender, TLogStreamAppender, TLogFileAppender, TLogRollingFileAppender.
Следующий пример проекта создает приложение ODS. Если вы запустите его в среде 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.
Ответ 8
Библиотека регистратора не должна сбрасывать содержимое синхронно. Это замедлит работу приложения. Вместо этого он должен буферизировать содержимое и сбрасывать их при его очистке.
Он также должен быть потокобезопасным и способен выгружать содержимое из разных потоков. (И желательно иметь возможность регистрировать идентификатор потока также)
Он также должен быть гибким и способным регистрировать несколько форматов вывода.
Здесь библиотека, которая делает все это: loggerpro