powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка 32 при Exception
19 сообщений из 44, страница 2 из 2
Ошибка 32 при Exception
    #40031200
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator

тут бы ещё содержание UMyLogger посмотреть
а то ведь на словах-то одно, а как оно там получится реально - совсем другое


UMyLogger у каждого свой :)
С годами там много чего отрастает - переоткрытия логов, архивирование, удаление старых и пр.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40031208
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Антивирус не зло, а источник дохода для его разработчика,
но ставить антивирусное ПО на девелоперскую машину,
действительно, довольно странно.

А что, прикольно бывает, нажимаешь F9, а приложуха незапускается.
И каспер такой: "Хозяин! Я вирус нашёл! И съел! Правда я классный?".

Гаджимурадов Рустам

Это для тупых юзеров
в основном (вирусы разные бывали, особенно в прошлом).

В истории был вирус, который заражал машины с дельфёй и встраивал себя в исходники всех новых приложений, которые на ней компилировали. Правда больше на демку был похож.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40031874
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Антивирус не зло, а источник дохода для его разработчика,
но ставить антивирусное ПО на девелоперскую машину,
действительно, довольно странно. Это для тупых юзеров
в основном (вирусы разные бывали, особенно в прошлом).
В том-то и дело, что проблемы, вызванные антивирусами, возникают у клиентов.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40031878
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064
IMHO, заниматься открытием файла (а это операция, которая способна приводить к проблемам), когда уже что-то пошло не так - идея не очень. Проще и лучше, если программа ведет лог - при старте (в секции Initialize модуля логирования) программы открыть файл лога,

Вставлять в initialization такую страшную операцию, как открытие файла - это ад.
Ну и еще.
Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам.
Так что не только открывать, а еще и имя файла придумывать часто приходится при записи.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40031882
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
28.12.2020 17:28, YuRock пишет:
> Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам.
> Так что не только открывать, а еще и имя файла придумывать часто приходится при записи.

не обязательно.
можно делать ротацию логов.
у нас например, при запуске процесса старый лог переименовывается, создаётся новый лог.
старый лог затаскивается в централизованное хранилище, после чего дропается на локальном хосте.

зы: собранные логи анализируются "отделом качества", после чего формируется баг-репорт кодерам.
конечные юзеры в этом всём не участвуют.
вообще.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40031929
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock

Вставлять в initialization такую страшную операцию, как открытие файла - это ад.
Ну и еще.

А что там такое адовое происходит?
Стартовать потоки - не стоит, а открытие файла и в инициализации dll работает

Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам.
Так что не только открывать, а еще и имя файла придумывать часто приходится при записи.
Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр., в итоге пришлось сделать опцию (по-умолчанию включена), которая сообщения в разные логи дублирует в основном. Проще в анализаторе лога разобрать.
IMHO, зависит от того, кому эти логи и для чего нужны.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032070
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
28.12.2020 17:28, YuRock пишет:
> Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам.
> Так что не только открывать, а еще и имя файла придумывать часто приходится при записи.

не обязательно.
можно делать ротацию логов.
у нас например, при запуске процесса старый лог переименовывается, создаётся новый лог.
старый лог затаскивается в централизованное хранилище, после чего дропается на локальном хосте.

зы: собранные логи анализируются "отделом качества", после чего формируется баг-репорт кодерам.
конечные юзеры в этом всём не участвуют.
вообще.
У нас процесс работает неделями бывает, и более.
Некоторые логи - логи действий юзера.
Некоторые - обмен с железками. Они по часам, десятки метров в час.
Еще куча всяких систем/плагинов, у каждой свой лог. Плюс логи репликатора.
Всё это раз в сутки семьзипится (почасовые большие - отдельно, дневные все скопом), и сохраняются в папку Logs\yymmdd
И такие папочки живут по два месяца на клиентских тачках.
При необходимости разбора полётов легко вытягиваются нужные файлы.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032074
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064
Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр.

Не очень понятно, кому и зачем объяснять. Если человек не может найти нужный лог - он в нём ничего и не поймёт, объясняй не объясняй. Если же его функция только найти файл и прислать разработчику.... никто не мешает сделать для этого функцию в своём приложении и не трахать пользователю череп.

x1ca4064
в итоге пришлось сделать опцию (по-умолчанию включена), которая сообщения в разные логи дублирует в основном. Проще в анализаторе лога разобрать.

Я привык класть логи в yyyy\month\yyyymmdd.log И от мысли смотреть в "основном логе" о чём-то, что случилось пару месяцев назад, мне несколько некомфортно. Я, конечно, верю в мощное современное железо и грамотно написанный софт, но зачем...?

x1ca4064
IMHO, зависит от того, кому эти логи и для чего нужны.

Безусловно.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032075
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064
А что там такое адовое происходит?
Стартовать потоки - не стоит, а открытие файла и в инициализации dll работает

Ну вот тут
https://docs.microsoft.com/en-us/windows/win32/dlls/dllmain#remarks
Что код в секции инициализации/финализации должен быть максимально простым, и что нет списка безопасных функций для использования там.
Так же там написано, что запрещено взаимодействие с другими потоками и процессами.
А открытие файла - вообще очень сложная функция. Мало ли, что там внутри. Как там ассинхронность инициализируется/работает, например.

Короче, я лично напарывался на очень много багов, вызванных кодом в init/fin, далеко не только старт/стоп потоков, это точно.
Теперь масимум, что себе позволяю - инициализацию там простых переменных, и то - редко.
По мне так это вообще не нужно.

x1ca4064
Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр.

У меня обратная ситуация. Лежат они все в одной папке и легко находятся.
Я согласен, есть другой подход: вести базу данных логов с типами событий. Минуса вижу 3:
1. она будет огромной, и ее придется все равно или как-то разбивать, или полностью реплицировать в центр.
2. нельзя будет по-быстрому в фаре посмотреть (Но это в общем решаемо, хоть и непривычно);
3. Не ясно, что делать при поломке этой базы - куда ошибку писать;
А так - да, есть и удобства.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032077
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064
Стартовать потоки - не стоит

О, кстати, а у вас лог что, в контексте вызывающего потока пишет что-ли? Такое не устраивает, мягко говоря. Наверно, потому вам и не понравилось открывать/закрывать файлы.

Понятно, что можно при первом вызове функции WriteLog запустить пишущий логи поток, но тогда почему бы не сделать там же условный CreateFile.
Зачем initialization насиловать - чтобы внутри него логи писать?)
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032103
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

Не очень понятно, кому и зачем объяснять.

Сам не знаю :) - иногда звонят какие-то люди, говорят "все висит и ничего не работает". Осторожно выясняешь, кто это, что это, запрашиваешь логи.
Если человек не может найти нужный лог - он в нём ничего и не поймёт, объясняй не объясняй. Если же его функция только найти файл и прислать разработчику.... никто не мешает сделать для этого функцию в своём приложении и не трахать пользователю череп.

У меня, большей частью, службы. Отдельный баг-репортер как-то руки не дошли написать. Но идея нравится, обязательно приделаю.
Я привык класть логи в yyyy\month\yyyymmdd.log И от мысли смотреть в "основном логе" о чём-то, что случилось пару месяцев назад, мне несколько некомфортно. Я, конечно, верю в мощное современное железо и грамотно написанный софт, но зачем...?

У меня есть текущий лог, который по достижении размера/возраста сжимается и кидается в папку OldLogs с именем [DDMMHHNN-DDMMHHNN]AppName.bz2, т.е. старые данные нужно брать там.
В некоторых местах логи переносятся на файловый сервер отдельным батником, в некоторых - нет.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032105
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock

Ну вот тут
https://docs.microsoft.com/en-us/windows/win32/dlls/dllmain#remarks
Что код в секции инициализации/финализации должен быть максимально простым, и что нет списка безопасных функций для использования там.
Так же там написано, что запрещено взаимодействие с другими потоками и процессами.
А открытие файла - вообще очень сложная функция. Мало ли, что там внутри. Как там ассинхронность инициализируется/работает, например.

У каждого свой опыт - у меня это уже третья итерация системы логирования, проблем именно с открытием файлов в инициализации dll не попадалось.
x1ca4064
Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр.

У меня обратная ситуация. Лежат они все в одной папке и легко находятся.
Я согласен, есть другой подход: вести базу данных логов с типами событий. Минуса вижу 3:
1. она будет огромной, и ее придется все равно или как-то разбивать, или полностью реплицировать в центр.
2. нельзя будет по-быстрому в фаре посмотреть (Но это в общем решаемо, хоть и непривычно);
3. Не ясно, что делать при поломке этой базы - куда ошибку писать;
А так - да, есть и удобства.
Думаю, отдельная БД для логов может быть оправдана только в случае какой-то распределенной большой системы, текстовые файлы для большинства остальных.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032107
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock

О, кстати, а у вас лог что, в контексте вызывающего потока пишет что-ли? Такое не устраивает, мягко говоря.

У меня расплодилось несколько объектов логов, некоторые умеют писать в отдельном потоке, но, реально используется с синхронной записью - как-то исторически.

В отдельном потоке пишет только цикличекий лог - он держит некоторое количество последних сообщений в памяти, и, если какая-то беда случается, скидывает их в файл.

Наверно, потому вам и не понравилось открывать/закрывать файлы.

нет - если файл закрыл, то далеко не факт, что сможешь открыть.

Зачем initialization насиловать - чтобы внутри него логи писать?)
Я вывожу имя и версию приложения, командную строку и прочую инфу, которая иногда может быть полезной. И, самое главное - открыть файл логов :)
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032140
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

А чем ищите данные по зазипованным файлам?
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032236
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius
YuRock,

А чем ищите данные по зазипованным файлам?
В фаре нажал на архиве энтер, затем - на файле F3 или F4, и всё перед глазами. Файлы то небольшие и с временем в начале каждой строки.
Некоторые сотрудники не пользуются фаром, они раззиповывают куда-то, потом нотепадами всякими смотрят.

Для некоторых логов оборудования пришлось написать разборщики логов, которые протокол устройства переводят на русский язык.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032252
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
В фаре нажал на архиве энтер, затем - на файле F3 или F4, и всё перед глазами. Файлы то небольшие и с временем в начале каждой строки.
А FAR не умеет искать в архивах без ручного входа в каждый? О_о
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032257
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

Тогда порекомендую dngrep умеет искать в архивах и много чего еще. Лейаут только у него странный...
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032306
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
YuRock
В фаре нажал на архиве энтер, затем - на файле F3 или F4, и всё перед глазами. Файлы то небольшие и с временем в начале каждой строки.
А FAR не умеет искать в архивах без ручного входа в каждый? О_о
Умеет со времен Win95. Только что искать-то? Важно посмотреть, что там происходило, параметры/данные какие-то (неизвестно, какие) посмотреть, события.
...
Рейтинг: 0 / 0
Ошибка 32 при Exception
    #40032309
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius
YuRock,

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


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