0

我正在尝试创建一个文本文件,我将在其中记录 servlet 执行的操作,因为它是远程运行的,这是我调试它的最佳机会。

在它的构造函数中,我做

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");

但是,该文件永远不会被创建。我使用错误的路径吗?为什么我什么都没看到?调试 servlet 的任何其他简单建议?请帮帮我,我什至无法开始调试。

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

你听说过远程调试吗?请使用远程调试对其进行调试,如果有错误,您将了解该错误。还可以尝试使用 System.getProperty("user.dir") 这将为您提供程序正在运行的当前目录。

另请参阅Java:写入文件,输出文件在哪里?

于 2012-08-17T03:26:10.847 回答
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 回答