ACE C ++ войти в несколько файлов

Я ныряю через ACE и записываю сообщение в файл, используя ACE_ERROR макро.
И AFAIK, ACE_ERROR регистрирует все сообщения в одном файле независимо от уровня их ошибок.

Тем не менее, мне действительно нужно писать сообщения в соответствии с уровнем их ошибок.
Я видел ACE_LOG_MSG->open() Функция, однако, я понимаю, что когда вы уже вызываете эту функцию дважды, во второй раз она закроет файл, который вы открыли, когда вызывали функцию в начале.

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

Тогда я буду открывать и закрывать файлы, не повлияет ли это на производительность моих приложений?

Так есть ли способ сохранить эти файлы открытыми?
Спасибо !

2

Решение

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

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

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector