Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Логгер: несколько писателей / 19 сообщений из 19, страница 1 из 1
29.05.2018, 15:08
    #39651830
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Когда в лог файл пишет одно приложение - это ясно
Применимы ли подходы, когда в один лог файл пишут несколько приложений?
И если да - как реализуется синхронизация?
...
Рейтинг: 0 / 0
29.05.2018, 15:09
    #39651832
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
SOFT FOR YOUкак реализуется синхронизация?

Мутексом проще всего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.05.2018, 15:11
    #39651834
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
у меня каждое приложение срёт в свой лог.
зачем нескольким валить всё в один лог - неизвестно.
Особенно, как потом разгребать весь этот мусор
...
Рейтинг: 0 / 0
29.05.2018, 15:38
    #39651860
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
defecatorу меня каждое приложение срёт в свой лог.
зачем нескольким валить всё в один лог - неизвестно.
Особенно, как потом разгребать весь этот мусор
Лог логу рознь.
Я иногда использую приложение, показывающее в своем окне сообщения от других приложений. Отладка "сетевого" комплекса. Ну, или не в окно, а в файл.

Zeromq на tcp, десять строк кода.
...
Рейтинг: 0 / 0
29.05.2018, 15:40
    #39651863
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
SOFT FOR YOU,

Посмотри winapi LockFile функцию, перед записью лочить...
...
Рейтинг: 0 / 0
29.05.2018, 15:43
    #39651867
Кукареку
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Нужно смотреть от кого, что пришло. Создать для нового, новый TList когда надо, выводить его в секционный компонент. Сделать фильтры секций, поиск по линиям, и прочее.
...
Рейтинг: 0 / 0
29.05.2018, 15:44
    #39651871
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
ZeliusSOFT FOR YOU,

Посмотри winapi LockFile функцию, перед записью лочить...
Вернее, LockFileEx
...
Рейтинг: 0 / 0
29.05.2018, 15:50
    #39651877
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
чччД__defecatorу меня каждое приложение срёт в свой лог.
зачем нескольким валить всё в один лог - неизвестно.
Особенно, как потом разгребать весь этот мусор
Лог логу рознь.
Я иногда использую приложение, показывающее в своем окне сообщения от других приложений. Отладка "сетевого" комплекса. Ну, или не в окно, а в файл.

Zeromq на tcp, десять строк кода.
кому как удобнее.
у меня серверная часть - это один файл Server.exe
но таких сервисов можно запустить несколько штук с разными входными параметрами.
В моём случае это номера видеоканалов, которые обслуживает каждый инстанс.
Примерно вот так:
Server.exe /1-8
Server.exe /9-16

соответственно, при старте каждый инстанс создаёт свой собственный файл лога в виде:
Server.log_1_8
Server.log_9_16
...
Рейтинг: 0 / 0
29.05.2018, 16:00
    #39651886
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
SOFT FOR YOU,
Кстати, да. Нафиг тебе что-то синхронизировать при создании лога. Пусть каждый пишет в свой лог, а ты сделай вьювер, читающий из многих логов в удобной для тебя форме: например, объединяя логи в один, сортируя месседжи по времени и т.п.
...
Рейтинг: 0 / 0
29.05.2018, 16:07
    #39651890
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
SOFT FOR YOU,

Я делал одного менеджера-писателя. А все, кто хотели что-то записать - работали через этого менеджера
...
Рейтинг: 0 / 0
29.05.2018, 16:55
    #39651937
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Всем спасибо за информацию
Тема исчерпана :)
...
Рейтинг: 0 / 0
29.05.2018, 23:03
    #39652099
Mr.Pavel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Само создание файла, конечно, оберните в Mutex.
Ну, а при записи в него, достаточно передавать специальным образом сформированную структуру overlapped, чтобы Windows сама писала в конец файла и синхронизировала доступ к нему.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  procedure GetOverlapped(out AnOverlapped: TOverlapped);
  begin
   {$IFDEF DELPHI2009}
    AnOverlapped := Default(TOverlapped);
   {$ELSE}
    FillChar(AnOverlapped, SizeOf(TOverlapped), 0);
   {$ENDIF}

    // to force writing at the end of file
    AnOverlapped.Offset := $FFFFFFFF;
    AnOverlapped.OffsetHigh := $FFFFFFFF;
  end;

...

    GetOverlapped(Overlapped);

    B := GetStringBytes(AData);
    if WriteFile(FileHandle, B[0], Length(B), C, @Overlapped) then
      FlushFileBuffers(FileHandle);
...
Рейтинг: 0 / 0
30.05.2018, 03:41
    #39652148
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
defecatorу меня каждое приложение срёт в свой лог.
зачем нескольким валить всё в один лог - неизвестно.
Особенно, как потом разгребать весь этот мусор

Если приложения взаимосвязаны и нужно отследить последовательность событий сразу в нескольких приложениях - то в одном логе это удобней.
...
Рейтинг: 0 / 0
30.05.2018, 05:39
    #39652156
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
fraksЕсли приложения взаимосвязаны и нужно отследить последовательность событий сразу в нескольких приложениях - то эластик с кибаной удобней.
как то так )
...
Рейтинг: 0 / 0
30.05.2018, 07:26
    #39652173
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
fraksdefecatorу меня каждое приложение срёт в свой лог.
зачем нескольким валить всё в один лог - неизвестно.
Особенно, как потом разгребать весь этот мусор

Если приложения взаимосвязаны и нужно отследить последовательность событий сразу в нескольких приложениях - то в одном логе это удобней.
defecatorкому как удобнее.
...
Рейтинг: 0 / 0
30.05.2018, 10:52
    #39652303
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Фигня вопрос.

Не парюсь с текстами, а пишу в БД с таймстампами. Она сама разберётся. Плюс селекты...
...
Рейтинг: 0 / 0
30.05.2018, 13:43
    #39652471
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Luke, use CodeSite.
...
Рейтинг: 0 / 0
15.06.2018, 10:22
    #39661117
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Самый простой вариант - открывать с share_deny_write, если ошибка доступа - значит, кто-то уже пишет, ждать десяток мс и пробовать по новой. Грубо и не особо феншуйно, но у меня пашет как dll в firebird базе с 200 записями из 10+ процессов в секунду
...
Рейтинг: 0 / 0
15.06.2018, 10:43
    #39661131
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логгер: несколько писателей
Василий 2,

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


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