|
|
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
defecator тут бы ещё содержание UMyLogger посмотреть а то ведь на словах-то одно, а как оно там получится реально - совсем другое UMyLogger у каждого свой :) С годами там много чего отрастает - переоткрытия логов, архивирование, удаление старых и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2020, 17:56 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Антивирус не зло, а источник дохода для его разработчика, но ставить антивирусное ПО на девелоперскую машину, действительно, довольно странно. А что, прикольно бывает, нажимаешь F9, а приложуха незапускается. И каспер такой: "Хозяин! Я вирус нашёл! И съел! Правда я классный?". Гаджимурадов Рустам Это для тупых юзеров в основном (вирусы разные бывали, особенно в прошлом). В истории был вирус, который заражал машины с дельфёй и встраивал себя в исходники всех новых приложений, которые на ней компилировали. Правда больше на демку был похож. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2020, 18:16 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Антивирус не зло, а источник дохода для его разработчика, но ставить антивирусное ПО на девелоперскую машину, действительно, довольно странно. Это для тупых юзеров в основном (вирусы разные бывали, особенно в прошлом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2020, 17:22 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
x1ca4064 IMHO, заниматься открытием файла (а это операция, которая способна приводить к проблемам), когда уже что-то пошло не так - идея не очень. Проще и лучше, если программа ведет лог - при старте (в секции Initialize модуля логирования) программы открыть файл лога, Вставлять в initialization такую страшную операцию, как открытие файла - это ад. Ну и еще. Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам. Так что не только открывать, а еще и имя файла придумывать часто приходится при записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2020, 17:28 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
28.12.2020 17:28, YuRock пишет: > Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам. > Так что не только открывать, а еще и имя файла придумывать часто приходится при записи. не обязательно. можно делать ротацию логов. у нас например, при запуске процесса старый лог переименовывается, создаётся новый лог. старый лог затаскивается в централизованное хранилище, после чего дропается на локальном хосте. зы: собранные логи анализируются "отделом качества", после чего формируется баг-репорт кодерам. конечные юзеры в этом всём не участвуют. вообще. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2020, 17:35 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
YuRock Вставлять в initialization такую страшную операцию, как открытие файла - это ад. Ну и еще. А что там такое адовое происходит? Стартовать потоки - не стоит, а открытие файла и в инициализации dll работает Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам. Так что не только открывать, а еще и имя файла придумывать часто приходится при записи. Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр., в итоге пришлось сделать опцию (по-умолчанию включена), которая сообщения в разные логи дублирует в основном. Проще в анализаторе лога разобрать. IMHO, зависит от того, кому эти логи и для чего нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2020, 19:06 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 28.12.2020 17:28, YuRock пишет: > Файлы логов почти всегда надо разбивать не только по именам бизнес-процессов, а и по месяцам, или дням, а часто даже по часам. > Так что не только открывать, а еще и имя файла придумывать часто приходится при записи. не обязательно. можно делать ротацию логов. у нас например, при запуске процесса старый лог переименовывается, создаётся новый лог. старый лог затаскивается в централизованное хранилище, после чего дропается на локальном хосте. зы: собранные логи анализируются "отделом качества", после чего формируется баг-репорт кодерам. конечные юзеры в этом всём не участвуют. вообще. Некоторые логи - логи действий юзера. Некоторые - обмен с железками. Они по часам, десятки метров в час. Еще куча всяких систем/плагинов, у каждой свой лог. Плюс логи репликатора. Всё это раз в сутки семьзипится (почасовые большие - отдельно, дневные все скопом), и сохраняются в папку Logs\yymmdd И такие папочки живут по два месяца на клиентских тачках. При необходимости разбора полётов легко вытягиваются нужные файлы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 00:32 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
x1ca4064 Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр. Не очень понятно, кому и зачем объяснять. Если человек не может найти нужный лог - он в нём ничего и не поймёт, объясняй не объясняй. Если же его функция только найти файл и прислать разработчику.... никто не мешает сделать для этого функцию в своём приложении и не трахать пользователю череп. x1ca4064 в итоге пришлось сделать опцию (по-умолчанию включена), которая сообщения в разные логи дублирует в основном. Проще в анализаторе лога разобрать. Я привык класть логи в yyyy\month\yyyymmdd.log И от мысли смотреть в "основном логе" о чём-то, что случилось пару месяцев назад, мне несколько некомфортно. Я, конечно, верю в мощное современное железо и грамотно написанный софт, но зачем...? x1ca4064 IMHO, зависит от того, кому эти логи и для чего нужны. Безусловно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 00:51 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
x1ca4064 А что там такое адовое происходит? Стартовать потоки - не стоит, а открытие файла и в инициализации dll работает Ну вот тут https://docs.microsoft.com/en-us/windows/win32/dlls/dllmain#remarks Что код в секции инициализации/финализации должен быть максимально простым, и что нет списка безопасных функций для использования там. Так же там написано, что запрещено взаимодействие с другими потоками и процессами. А открытие файла - вообще очень сложная функция. Мало ли, что там внутри. Как там ассинхронность инициализируется/работает, например. Короче, я лично напарывался на очень много багов, вызванных кодом в init/fin, далеко не только старт/стоп потоков, это точно. Теперь масимум, что себе позволяю - инициализацию там простых переменных, и то - редко. По мне так это вообще не нужно. x1ca4064 Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр. У меня обратная ситуация. Лежат они все в одной папке и легко находятся. Я согласен, есть другой подход: вести базу данных логов с типами событий. Минуса вижу 3: 1. она будет огромной, и ее придется все равно или как-то разбивать, или полностью реплицировать в центр. 2. нельзя будет по-быстрому в фаре посмотреть (Но это в общем решаемо, хоть и непривычно); 3. Не ясно, что делать при поломке этой базы - куда ошибку писать; А так - да, есть и удобства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 00:55 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
x1ca4064 Стартовать потоки - не стоит О, кстати, а у вас лог что, в контексте вызывающего потока пишет что-ли? Такое не устраивает, мягко говоря. Наверно, потому вам и не понравилось открывать/закрывать файлы. Понятно, что можно при первом вызове функции WriteLog запустить пишущий логи поток, но тогда почему бы не сделать там же условный CreateFile. Зачем initialization насиловать - чтобы внутри него логи писать?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 01:02 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
softwarer Не очень понятно, кому и зачем объяснять. Сам не знаю :) - иногда звонят какие-то люди, говорят "все висит и ничего не работает". Осторожно выясняешь, кто это, что это, запрашиваешь логи. Если человек не может найти нужный лог - он в нём ничего и не поймёт, объясняй не объясняй. Если же его функция только найти файл и прислать разработчику.... никто не мешает сделать для этого функцию в своём приложении и не трахать пользователю череп. У меня, большей частью, службы. Отдельный баг-репортер как-то руки не дошли написать. Но идея нравится, обязательно приделаю. Я привык класть логи в yyyy\month\yyyymmdd.log И от мысли смотреть в "основном логе" о чём-то, что случилось пару месяцев назад, мне несколько некомфортно. Я, конечно, верю в мощное современное железо и грамотно написанный софт, но зачем...? У меня есть текущий лог, который по достижении размера/возраста сжимается и кидается в папку OldLogs с именем [DDMMHHNN-DDMMHHNN]AppName.bz2, т.е. старые данные нужно брать там. В некоторых местах логи переносятся на файловый сервер отдельным батником, в некоторых - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 06:57 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
YuRock Ну вот тут https://docs.microsoft.com/en-us/windows/win32/dlls/dllmain#remarks Что код в секции инициализации/финализации должен быть максимально простым, и что нет списка безопасных функций для использования там. Так же там написано, что запрещено взаимодействие с другими потоками и процессами. А открытие файла - вообще очень сложная функция. Мало ли, что там внутри. Как там ассинхронность инициализируется/работает, например. У каждого свой опыт - у меня это уже третья итерация системы логирования, проблем именно с открытием файлов в инициализации dll не попадалось. x1ca4064 Это сложный вопрос - разбитие на несколько логов показало себя с плохой стороны, т.к. приходилось долго объяснять какие логи нужны, где они лежат и пр. У меня обратная ситуация. Лежат они все в одной папке и легко находятся. Я согласен, есть другой подход: вести базу данных логов с типами событий. Минуса вижу 3: 1. она будет огромной, и ее придется все равно или как-то разбивать, или полностью реплицировать в центр. 2. нельзя будет по-быстрому в фаре посмотреть (Но это в общем решаемо, хоть и непривычно); 3. Не ясно, что делать при поломке этой базы - куда ошибку писать; А так - да, есть и удобства. Думаю, отдельная БД для логов может быть оправдана только в случае какой-то распределенной большой системы, текстовые файлы для большинства остальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 07:23 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
YuRock О, кстати, а у вас лог что, в контексте вызывающего потока пишет что-ли? Такое не устраивает, мягко говоря. У меня расплодилось несколько объектов логов, некоторые умеют писать в отдельном потоке, но, реально используется с синхронной записью - как-то исторически. В отдельном потоке пишет только цикличекий лог - он держит некоторое количество последних сообщений в памяти, и, если какая-то беда случается, скидывает их в файл. Наверно, потому вам и не понравилось открывать/закрывать файлы. нет - если файл закрыл, то далеко не факт, что сможешь открыть. Зачем initialization насиловать - чтобы внутри него логи писать?) Я вывожу имя и версию приложения, командную строку и прочую инфу, которая иногда может быть полезной. И, самое главное - открыть файл логов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 07:35 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
YuRock, А чем ищите данные по зазипованным файлам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 10:54 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
Zelius YuRock, А чем ищите данные по зазипованным файлам? Некоторые сотрудники не пользуются фаром, они раззиповывают куда-то, потом нотепадами всякими смотрят. Для некоторых логов оборудования пришлось написать разборщики логов, которые протокол устройства переводят на русский язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 14:00 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
YuRock В фаре нажал на архиве энтер, затем - на файле F3 или F4, и всё перед глазами. Файлы то небольшие и с временем в начале каждой строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 14:29 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
YuRock, Тогда порекомендую dngrep умеет искать в архивах и много чего еще. Лейаут только у него странный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 14:40 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
alekcvp YuRock В фаре нажал на архиве энтер, затем - на файле F3 или F4, и всё перед глазами. Файлы то небольшие и с временем в начале каждой строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 15:25 |
|
||
|
Ошибка 32 при Exception
|
|||
|---|---|---|---|
|
#18+
Zelius YuRock, Тогда порекомендую dngrep умеет искать в архивах и много чего еще. Лейаут только у него странный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2020, 15:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40032252&tid=2037745]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 468ms |

| 0 / 0 |
