![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Как лучше организовать сохранение в логи.
Я делал так: Создавал List<string> _log и писал все в него, потом в конце сохранял. Но у этого метода есть недостатки, если вдруг происходила не отловленная ошибка, лог соответственно не сохранялся. Отловить все не мог по такой причине: например есть цикл
все хорошо, но когда происходит ошибка в цикле, он отлавливает ее и после обработки сразу передает на выше в обработчик x_main и переходит в блок файнали. Мне этого не надо. Но тогда получается если убрать первый трай, то появятся ошибки которые не обработаны будут. Второй вариант - это сразу при обработке ошибки писать на диск в файл, но это больше по времени? Подскажите как лучше организовывать работу с логами? -------------------- ![]() |
|||
|
||||
| Alekz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 5.2.2008 Где: Запорожье, Украин а Репутация: 1 Всего: 2 |
||||
|
||||
| jorikdima |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 18.1.2008 Где: Там, где Зенит Репутация: нет Всего: нет |
||||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Alekz, я думаю вопрос не в том каким способом лучше записать, а каким способом лучше отловить. Лог4нет кажись предлагает только методы записи.
MasterOfCode, внутренний трай должен указывать конкретный ексепшин который ты обрабатываешь. Ловить все - плохая затея. Если ты открываешь файл - ты можешь обработать FileNotFound и т.д. В Application есть эвент, кажись ThreadException или что-то подобное. Может помочь. -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
угу, так и делаю в большинстве случаев. эт только на примере изобразил.
В большей степени как ловить. Но и как писать тоже хотелось бы узнать, и обязательно для этого пользоваться сторонними компонентами? И как они работают? -------------------- ![]() |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
MasterOfCode, можно посмотреть до кучи Exception Handling Block в MS Patterns & Practices CAB
-------------------- СУВ, Partizan. |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Ну тогда как бы твоей проблемы и нет. Отловил FileNotFound - сделал соответствующий откат, выдал окошко пользователю - дальше его не выкидываешь, его и не нужно писать в лог файл. Лог4нет удобный очень - всякие разные форматы записи, легко конфигурируемый и не сложный в работе. Конечно же лучше использовать его хотя бы следуя тому что могут поменяться какие-то требования к логам (к примеру раньше сохранял в текстовом формате, а тут понадобилось сохранить в хмл, чтобы потом написать прогу которая показывала логи в дружественном интерфейсе) - в лог4нет такие вещи пройдут просто и безболезненно -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Есть "родное" решение от MS - Enterprise Library. В частности, The Logging Application Block.
-------------------- I don't need a reason being who I am... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |