Java 使用FileWriter记录servlet的进度
我试图创建一个文本文件,在其中记录servlet执行的操作,因为它是远程运行的,这是调试它的最佳机会 在它的构造函数中,我是这样做的Java 使用FileWriter记录servlet的进度,java,servlets,logging,Java,Servlets,Logging,我试图创建一个文本文件,在其中记录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"); 但是,永远不
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的简单建议吗?请帮帮我,我甚至无法开始调试它。您应该使用日志框架,例如log4j来进行日志记录
Logger.getLogger(“自定义记录器”)代码>(惯例是使用类名:this.class.getName()
)
资料来源:这一次我也参加过。你听说过远程调试吗?请使用调试,如果有错误,您将理解错误。还可以尝试使用System.getProperty(“user.dir”),它将为您提供运行程序的当前目录
另请参见您可以尝试以下代码。此日志文件是使用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();
}
}
我认为您不能在WEB-INF文件夹下创建/更新文件。我建议将您的日志文件移到项目外部。我认为在WEB-INF文件夹中创建一个文件在他的情况下不是问题,但当应用程序将被重新部署时,您的日志将丢失。也许你走错了路。尝试使用绝对(简单)路径来查看发生了什么。另外一件事。使用writer后关闭它。我在哪里可以看到记录的语句?在档案里?在控制台里?在网站上?文件输出可以工作,但是如果我们已经有非常好的库,为什么要手工处理呢?你说它是远程运行的。这在你的网络上吗?是否已尝试远程调试会话?对,但这些日志语句将显示在哪里?如果在文件中,它的名称是什么?我正在运行tomcat 5。您可以将其配置为在任何地方进行日志记录。如果我使用log4j,在哪里可以看到记录的语句?顺便问一下,我可以在哪里找到我的服务器的日志?也可能是您的权限阻止您创建文件,或者您的绝对路径错误。这取决于您正在运行的服务器。学校项目的tomcat共享服务器Log4J也可以正常工作。您必须编写一个自定义文件处理程序,以便以任何方式写入特定文件,这可能会使事情过于复杂。对不起,我忽略了你问题的那一部分:你想写一个特定的文件。不,我不知道远程调试。我应该把这种代码放在哪里?在servlet类中?文件将出现在哪里?在servlet中命名的新类中创建此文件。并且将在位置“D:\\test\\LogFile.log”中创建日志文件