gpt4 book ai didi

java - 执行 jar 并将其输出重定向到文件时在控制台上打印 System.out.println 语句

转载 作者:行者123 更新时间:2023-11-30 05:44:06 25 4
gpt4 key购买 nike

我有一个小的java程序,要求用户输入两个日期。我想将整个程序打包成一个jar文件。当我尝试通过命令行执行 jar 文件并将输出重定向到日志文件(如下所示:java -jar Sample.jar >> Sample.log)时,所有 System. out.println 语句和日志语句打印到外部文件,而不是打印在控制台上。我希望看到控制台上打印的 System.out.println 语句和外部文件中的 log4j 日志语句,即使用户将输出重定向到日志文件也是如此。请注意,我已将 log4j 附加程序设置为“控制台”。关于如何做到这一点有什么想法吗?

示例程序如下:

public class Sample {

public static void main(String[] arg) {
logger.debug("start of the main method");
Scanner in = new Scanner(System.in);
System.out.println("Please enter start date in the format YYYY-MM-DD");
String startDate = in.nextLine();
logger.debug("The entered start date is " + startDate);
System.out.println("Please enter end date in the format YYYY-MM-DD");
logger.debug("The entered end date is " + endDate);

}
}

最佳答案

您可以使用 this answer 中描述的方法来代替 >> 。所以代替:

java -jar Sample.jar >> Sample.log

...你可以这样做:

java -jar 示例.jar | tee -a Sample.log

对于 Windows,您可以尝试使用以下内容: this questionthis one

可以使用 Windows PowerShell 访问

tee。这可以从开始菜单打开。

This question really helped me in finding a way to access tee command

关于java - 执行 jar 并将其输出重定向到文件时在控制台上打印 System.out.println 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55138947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com