Где лучшее местоположение должно записать журнал ошибок в Windows?

Вы можете использовать __doPostBack, передавая идентификатор вашей CallBackPanel. Например:

<script type='text/javascript'>
    setInterval(function () {
        __doPostBack("<%= panel.ClientID %>", "PanelCalledBack");
    }, 10000);
</script>

Затем проверьте соответствие переданного аргумента PanelCalledBack в событии OnLoad вашей панели (если оно есть) или в событии Page_Load:

if (Request.Params.Get("__EVENTARGUMENT")?.Trim().IndexOf("PanelCalledBack") != -1)
{
    ASPxCallbackPanel1_Callback(panel, null);
}
11
задан Peter Mortensen 25 December 2010 в 21:42
поделиться

9 ответов

Вы рассмотрели вход средства просмотра события вместо этого? Если Вы хотите записать свой собственный журнал, я предлагаю пользовательский каталог установки локального приложения. Сделайте каталог продукта под там. Это отличается на другой версии Windows.

На Vista Вы не можете поместить файлы как это под c:\program files. Вы столкнетесь с большим количеством проблем с ним.

В.NET можно узнать эту папку с этим:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

И журнал событий справедливо прост в использовании также:

http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.aspx

14
ответ дан 3 December 2019 в 05:14
поделиться

Текстовые файлы являются большими для серверного приложения (Вы действительно говорили что Windows 2003). У Вас должен быть отдельный файл журнала для каждого серверного приложения, местоположение является действительно вопросом конвенции согласиться с администраторами. Например, для приложений ASP.NET я часто видел их помещенный в отдельный диск из приложения под структурой папок, которая подражает структуре виртуального каталога.

Для клиентских приложений один недостаток текстовых файлов - то, что пользователь может запустить несколько копий Вашего приложения (если Вы не сделали определенные шаги для предотвращения этого). Таким образом, у Вас есть проблема конкуренции, если несколько экземпляров пытаются записать в тот же файл журнала. Поэтому я всегда предпочитал бы Windows Event Log для клиентских приложений. Один протест состоит в том, что необходимо быть администратором для создания журнала событий - это может быть сделано, например, установочным пакетом.

Если бы Вы действительно используете файл, я предложил бы использовать папку Environment. SpecialFolder. LocalApplicationData, а не SpecialFolder. ApplicationData, как предложили другие. LocalApplicationData находится на локальном диске: Вы не хотите, чтобы сетевые проблемы мешали Вам регистрироваться, когда у пользователя есть профиль роуминга. Для приложения WinForms используйте Приложение. LocalUserAppDataPath.

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

5
ответ дан 3 December 2019 в 05:14
поделиться

Лично, я предложил бы использовать журнал событий Windows, это является большим. Если Вы не можете, затем записать файл в каталог ApplicationData или ProgramData (Данные приложения для всех пользователей на Windows XP) каталог.

3
ответ дан 3 December 2019 в 05:14
поделиться

Стандартное местоположение (местоположения):

C:\Documents and Settings\All Users\Application Data\MyApp

или

C:\Documents and Settings\%Username%\Application Data\MyApp

(иначе %UserProfile%\Application Data\MyApp) который соответствовал бы Вашему требованию разрешения уровня пользователя. Это также разделяет журналы, созданные различными пользователями.

Используя время выполнения.NET, они могут быть созданы как:

AppDir=
  System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

или

AppDir=
  System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

сопровождаемый:

MyAppDir = IO.Path.Combine(AppDir,'MyApp')

(Который, надо надеяться, отображает профили Vista также).

2
ответ дан 3 December 2019 в 05:14
поделиться

Журнал событий Windows является определенно способом пойти для журналирования ошибок. Вы не ограничены журналом "Приложения", поскольку возможно создать новую цель журнала (например, "Мое Приложение"). Это, возможно, должно быть сделано как часть установки, поскольку я не уверен, требует ли она административных привилегий или нет. Существует пример Microsoft в C# по http://support.microsoft.com/kb/307024.

Windows 2008 также имеет Передачу журнала событий, которая может быть довольно удобной с серверными приложениями.

2
ответ дан 3 December 2019 в 05:14
поделиться

Я соглашаюсь с Lou на этом, но я предпочитаю настраивать это в конфигурационном файле как сказанный Joe. Можно использовать

значение файла = "${APPDATA}/Test/log-file.txt"

("Тест" мог быть тем, что Вы хотите, или удаленный полностью) в конфигурационном файле, который заставляет файл журнала быть записанным в "/Документы и Данные/Тест Settings/LoginUser/Application" по Windows XP и к "/Users/LoginUser/AppData/Roaming/Test на Windows Vista.

Я просто добавляю это, когда я просто провел слишком много времени, фигурируя, как сделать эту работу над Windows Vista...

Это работает как есть с Приложениями Windows. Для использования входящих в систему веб-приложений я нашел, что запись в блоге Phil Haack на этом была большим ресурсом: http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx

1
ответ дан 3 December 2019 в 05:14
поделиться

% %TEMP всегда является хорошим местоположением для журналов, которые я нахожу.

0
ответ дан 3 December 2019 в 05:14
поделиться

При хождении вразрез с мелкой частицей здесь - это зависит от того, что необходимо сделать. Иногда необходимо управлять результатами, таким образом, log.txt является способом пойти. Это просто, изменяемо, и легко искать.

Возьмите пример от Joel. Fogbugz отправит журнал / дамп сообщений об ошибках через http к их серверу. Вы могли сделать то же и не иметь для волнения о правах доступа пользователя на их диске.

0
ответ дан 3 December 2019 в 05:14
поделиться

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

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

РЕДАКТИРОВАНИЕ - необходимо изучить Блоки приложений MS для входа при использовании.NET. Они действительно делают жизнь легкой.

Здорово уничтожители Кармы. В следующий раз я даже не предложу предложения, когда плакат поднимет неполное сообщение.

-5
ответ дан 3 December 2019 в 05:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: