アプリケーションのデバッグログファイルをWindowsユーザー環境に配置するのに最適な「標準」場所はどこですか?
この特定のケースでは、それは一度実行され、うまくいかない可能性があるアプリケーションです。これは、アプリケーションの実行後にログを検査する必要があるシステム管理者タイプによって実行されます。アプリケーションが実行されるたびに、新しいログファイルが作成されます。
これまでにフロートされたオプションは次のとおりです。
私は私のお気に入りですが、SOコンセンサスは何だったのか疑問に思いました。
注:これは この質問 に似ていますが、1人のユーザーが1回だけ実行する可能性が高いアプリケーションを扱っています。
アプリケーションデータディレクトリは完璧な場所のように見えますが、ほとんど見えない領域です。ユーザーが簡単にアクセスできるようにする必要があります。
インストールスクリプトを使用して、プログラムの[アプリケーションデータ]領域にログフォルダーを作成し、そのフォルダーへのリンクを[スタート]メニューに含めます。
私が働いている組織では、(%TEMP%または%TMP%)\ CompanyOrProductName\Logsディレクトリを使用しています。ログが多数または巨大な場合、%APPDATA%を使用すると、移動プロファイルで問題が発生する可能性があります。ログインプロセスが遅くなります...
ログの「標準」の場所はAppDataディレクトリです。ただし、実際には、それらをどこに保存するかはあなた次第です。彼らは管理者(パワーユーザー)であるため、実行中のアプリケーションと同じディレクトリにログを保存することに問題はありません。ユーザーのMyDocumentsでさえ、良い叫びになるでしょう。
1.プログラムディレクトリ<-良くない。理想的には、このフォルダに対するRX権限のみがあります。
2.ユーザーのデスクトップ<-技術的には実行できますが、このアイデアは好きではありません。デスクトップを汚染しています...私はユーザーとして、それが好きではありません。
3.ユーザーのローカルアプリケーションデータディレクトリ。 <-より良い
私の好みは、プログラムディレクトリの下のサブディレクトリです(「DebugLog」などの明確な名前が付いています)。そのサブディレクトリのアクセス許可は、ファイルの作成と書き込みを許可する必要があります(「変更」は問題ありません)
[〜#〜] expect [〜#〜]問題が発生した場合は、ユーザーのローカルアプリケーションデータディレクトリに配置してください。
とにかくログを記録したくない場合は、一時ディレクトリを実際に使用することを検討するかもしれません。これの理由は簡単です。アプリケーションが1度だけ実行される場合は、Application Dataディレクトリにゴミを残します。それ以外の場合、誰も二度と必要としません。一時的には、少なくとも後でクリーンアップされる可能性があります。
ところで:私見では、何か問題が発生するまで、ログをファイルとして作成しない(ログをメモリに保存する)のが最善ではありません。その後、ユーザーがログを保存する場所を選択するダイアログを引き続き提供できます。
Windows一時フォルダ
ログファイルをかなりの時間保持する必要があり、それらを使用することを目的としている場合は、ログファイルをユーザーのローカルアプリケーションデータフォルダーのサブフォルダーに配置します。このフォルダーには、Windowsエクスプローラーから_%localappdata%
_。
それらが一時ログファイルであり、システム診断の場合にのみ使用される場合は、Windowsエクスプローラー_%temp%
_からアクセスできる一時フォルダーに配置する必要があります。