Java 有没有办法将命令提示符错误日志存储在某个地方?

Java 有没有办法将命令提示符错误日志存储在某个地方?,java,cmd,command-line,jar,Java,Cmd,Command Line,Jar,我在命令提示符下运行了一个JavaJAR文件。假设程序执行失败并出现错误,我希望将错误记录在某个地方,以便稍后检查 有什么方法可以做到这一点吗?我认为您正在寻找的是logback()。 它帮助您配置日志级别(infor、debug、error等)和日志文件的位置。您可以使用命令>output.txt将命令行输出存储到单独的文件中 java -jar application.jar > output.txt 也可以对output.txt使用位置自定义位置 java -jar applica

我在命令提示符下运行了一个JavaJAR文件。假设程序执行失败并出现错误,我希望将错误记录在某个地方,以便稍后检查


有什么方法可以做到这一点吗?

我认为您正在寻找的是logback()。
它帮助您配置日志级别(infor、debug、error等)和日志文件的位置。

您可以使用命令
>output.txt
将命令行输出存储到单独的文件中

java -jar application.jar > output.txt
也可以对output.txt使用位置自定义位置

java -jar application.jar > D:\\myfolder\\output.txt
或者,您可以使用
Runtime.getRuntime().exec()
创建一个java程序来运行外部jar应用程序,这有助于您操作输出以根据输出显示和执行操作

Process myProcess = Runtime.getRuntime().exec("java -jar application.jar");

BufferedReader reader = new BufferedReader(new InputStreamReader(myProcess.getInputStream()));

while ((consoleOutput = reader.readLine()) != null) {
    saveLogs(consoleOutput);
    System.out.println(consoleOutput);
}

myProcess.waitFor();

InputStream in = myProcess.getInputStream();
InputStream err = myProcess.getErrorStream();

byte[] b = new byte[in.available()];
in.read(b, 0, b.length);
saveLogs(consoleOutput);
System.out.println(new String(b));

byte[] c = new byte[err.available()];
err.read(c, 0, c.length);
saveLogs(consoleOutput);
System.out.println(new String(c));
使用
FileWriter
将控制台输出保存到文件中

public void saveLogs(String text) {
    try (FileWriter f = new FileWriter("log\\output.log", true);
            BufferedWriter b = new BufferedWriter(f);
            PrintWriter p = new PrintWriter(b);) {
        p.println(text);
    } catch (IOException ex) {
        logger.error("SAVE_LOGS_ERROR", ex);
    }
}