0

サーブレットはリモートで実行されているため、サーブレットが実行したアクションをログに記録するテキスト ファイルを作成しようとしています。

そのコンストラクターで、私は

logFile = new FileWriter("/absolutePath/WEB-INF/classes/a.txt");
fout = new BufferedWriter(logFile);
fout.write("Server is up and awaiting connections on port: " + PORT+"\n");

ただし、ファイルは作成されません。間違ったパスを使用していますか? 何も表示されないのはなぜですか? サーブレットをデバッグするための他の簡単な提案はありますか? 私を助けてください、私はこれをデバッグすることさえできません。

4

4 に答える 4

0

ロギング目的で log4j などのロギング フレームワークを使用する必要があります。

于 2012-08-17T02:39:31.597 に答える
0
  1. サーバーのエラー ログを確認します。書き込みが失敗する理由についての手がかりがあるかもしれません。
  2. 役に立たない場合は、ログ レベルを変更してサーバーを再起動してみてください。
  3. また、java.util.logging も調べてください。使用できるはずですLogger.getLogger("custom-logger");(慣例では、クラス名を使用することですthis.class.getName():)

出典:私はこれに行ってきました。

于 2012-08-17T02:47:25.320 に答える
0

以下のようなコードを試すことができます。このログ ファイルは log4j を使用して作成されます

public class Logger
{

protected static FileHandler m_FileHandler;

protected static Logger m_logger = null;

public static void startAppLog()
{
    try {
        m_FileHandler = new FileHandler("D:\\test" + "\\" + "LogFile.log", true);
        final LogManager logMngr = LogManager.getLogManager();
        m_logger = Logger.getLogger(NmsLogger.class.getName());
        }
     catch (final SecurityException e) {
        e.printStackTrace();
    }
    catch (final IOException e) {
        e.printStackTrace();
    }
}
于 2012-08-17T03:31:45.093 に答える
0

リモートデバッグについて聞いたことがありますか? リモート デバッグを使用してデバッグしてください。エラーがあれば理解できます。また、プログラムが実行されている現在のディレクトリを取得する System.getProperty("user.dir") を使用してみてください。

また、Java: ファイルへの書き込み、出力ファイルはどこですか? も参照してください。

于 2012-08-17T03:26:10.847 に答える