编辑这是我运行一个(.bat)文件的批处理文件代码,我尝试将bat的输出转换成一个日志文件,但我不想自动设置日志文件的名称,对于我要运行的每个bat,用bat文件的名称创建一个新的日志文件。希望我能解释清楚
private final static Logger LOGGER = LoggerFactory.getLogger(BatchFile.class);
public void BatchFile(File file) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder(file.getAbsolutePath());
processBuilder.directory(file.getParentFile());
Process process = processBuilder.start();
Scanner scanner = new Scanner(process.getInputStream());
try (PrintStream out = new PrintStream(new FileOutputStream("C:\\temp\\my_log.log"))) {
while (scanner.hasNextLine()) {
String outputLine = scanner.nextLine();
LOGGER.info(outputLine);
out.print(outputLine);
}
scanner.close();
}
System.out.println(process.waitFor());
}
}
我想知道是否有人有同样的问题。我尝试使用loggerfactory为我的程序创建日志文件,例如:
我想把system.out.printl的输出放到一个日志文件中。或者将控制台中的所有错误或消息打印到日志文件中。有可能吗?
谢谢
final Logger log = LoggerFactory.getLogger(NameOfClass.class);
1条答案
按热度按时间2w3rbyxf1#
是的,这是可能的,也是任何日志框架的目的。我假设您使用的是slf4j接口。根据实施情况,请查看以下入门指南:
log4j
返回日志
共享日志
它们都可以选择将日志事件写入文件:
log4j中的fileappender
logback中的fileappender
commons日志中的filehandler