powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Посоветуйте логгер
18 сообщений из 18, страница 1 из 1
Посоветуйте логгер
    #39854249
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется логгер, с функциональностью джавовского log4j.

Для тех кто не знаком рассказываю. Есть четыре сущности:
0. Сообщение
1. Logger
2. Appender
3. Formatter

Сообщение имеет разные уровни важности (от фатальной ошибки, до дебаг-инфо). В логгере мы указываем до какого уровня мы принимаем сообщения. К логгеру привязаны один или более аппендеров, которые как-то это сообщение фиксирует. Кто в текстовый файл пишет, кто в сокет, кто в XML... Ну а само сообщение аппендер преобразует в информацию при помощи форматтера.

Логгеры имеют древовидную иерархию. Поэтому задав настройки для одного уровня, все дети их наследуют (если у детей не сказано иное).

Все настройки могут подниматься из файла.

Ну и, конечно, многопоточная работа.

Кто-то видел такое для Delphi?


С уважением, Vasilisk
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854253
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

Ну дык log4Delphi - это обёртка для java'вского
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854260
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpublog4DelphiСпасибо. Буду щупать
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854263
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Хочется логгер, с функциональностью джавовского log4j.

Для тех кто не знаком рассказываю. Есть четыре сущности:
0. Сообщение
1. Logger
2. Appender
3. Formatter

Сообщение имеет разные уровни важности (от фатальной ошибки, до дебаг-инфо). В логгере мы указываем до какого уровня мы принимаем сообщения. К логгеру привязаны один или более аппендеров, которые как-то это сообщение фиксирует. Кто в текстовый файл пишет, кто в сокет, кто в XML... Ну а само сообщение аппендер преобразует в информацию при помощи форматтера.

Логгеры имеют древовидную иерархию. Поэтому задав настройки для одного уровня, все дети их наследуют (если у детей не сказано иное).

Все настройки могут подниматься из файла.

Ну и, конечно, многопоточная работа.

Кто-то видел такое для Delphi?


С уважением, Vasilisk

Да.. Наша разработка... Пока не выкладывали на github (в планах)
Полностью абстрагирована и настраиваемая.. Можно любую абстракцию собственной реализацией подменять при желании...
Расширяется легко...
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854266
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает под Win32/Win64. Под Android все успешно собирается, но не проверяли корректность.. Остальные ОС в планах подкрутить.
И да, мы не поддерживаем зоопарк версий... Всегда есть только пакет под последнюю редакцию, но теоретически в XE7 еще соберется... В XE6 не помню.. обернули ли System.Hash в директиву или убрали уже..
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854269
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpublog4DelphiВ топку. Многопоточности нет
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
      instances := TStringList.Create;
........
class function TLogger.GetInstance(const AName : String) : TLogger;
var
   index : Integer;
   logger : TLogger;
begin
   index := Instances.IndexOf(AName);
   if (index < 0) then begin
      logger := TLogger.Create(AName);
      instances.AddObject(AName, logger);
      Result := logger;
   end else
   Result := TLogger(instances.Objects[index]);
end;
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854270
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteПока не выкладывали на githubТогда какой смысл о ней писать?
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854273
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_X-CiteПока не выкладывали на githubТогда какой смысл о ней писать?
В процессе подготовки выкладки... Анонс по сути)
Надо еще одно изменение сделать и можно отдавать в массы..
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854275
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteНадо еще одно изменение сделатьТак тогда сроки озвучь
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854287
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_zinpublog4DelphiВ топку. Многопоточности нет
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
      instances := TStringList.Create;
........
class function TLogger.GetInstance(const AName : String) : TLogger;
var
   index : Integer;
   logger : TLogger;
begin
   index := Instances.IndexOf(AName);
   if (index < 0) then begin
      logger := TLogger.Create(AName);
      instances.AddObject(AName, logger);
      Result := logger;
   end else
   Result := TLogger(instances.Objects[index]);
end;



Ну в CS две секунды завернуть...
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854297
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpubНу в CS две секунды завернуть...Мне весь код инспектировать?
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854301
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

Ну мне хватало GetInstance обернуть... в потоках работало...
Найти сходу не могу, дома гляну скину, если найду
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854401
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Логер Парабеллум"... хорошее название.
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854475
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854508
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте про Codesite
https://raize.com/codesite/
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854536
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эндиGrijjyCloudLogger
https://blog.grijjy.com/2017/08/22/grijjycloudlogger-remote-logging-for-windows-ios-android-macos-and-linux/ поддерживаю, хороший логгер
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854571
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлю 5 центов
loggerpro
- и ThreadSafe
- и выводит в разные файлы
Log.Debug('Debug message', 'main');
Log.Info('Info message', 'main');
Log.Warn('Warning message', 'main');
Log.Error('Error message', 'errors');
- и соблюдает размер логов
...
Рейтинг: 0 / 0
Посоветуйте логгер
    #39854591
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpubНу мне хватало GetInstance обернуть... в потоках работало...Не может оно работать в потоках
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
procedure TWriterAppender.Append(AEvent : TLoggingEvent);
begin
   if (Self.FClosed) then begin
      if (Self.FErrorHandler <> Nil) then
         Self.FErrorHandler.Error(
            'This appender is closed and cannot be written to.');
      Exit;
   end;
   Self.FWriter.Println(Self.Flayout.Format(AEvent));
   if not (Self.Flayout.IgnoresException) then
      if (AEvent.getException <> Nil) then
         Self.FWriter.Println('Exception: ' + AEvent.GetException.Message);
end;

procedure TPrintWriter.Print(AMsg : String);
begin
  if (AMsg <> '') then
    // See http://sourceforge.net/projects/log4delphi/forums/forum/486124/topic/3270609
    {$IFDEF UNICODE}
      FStream.Write(PAnsiChar(UTF8String(AMsg))^, Length(UTF8String(AMsg)));
    {$ELSE}
      FStream.Write(PChar(AMsg)^, Length(AMsg));
    {$ENDIF}
end;

никакой синхронизации в принципе нет
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Посоветуйте логгер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]