0

我想通过java执行一个python脚本。我为此使用了下面的示例代码。问题是当我通过命令行执行 python 脚本时,它会将日志保存到 log_test.log 文件中。但是当我从 java 日志执行时没有写入日志文件,我使用的是 python 3.7 和 java 1.8

Python 脚本

import logging

logger = logging.getLogger('log_test')
logger.setLevel(logging.INFO)
fh = logging.FileHandler('log_test.log')
fh.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

fh.setFormatter(formatter)

logger.addHandler(fh)

logger.info('info message')

Java 代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.script.ScriptException;

public class Main {

    public static void main(String[] args) throws ScriptException, IOException {


        Process p = Runtime.getRuntime().exec("python ./log_test.py");

        BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

        System.out.println("output");
        String s = null;
        while ((s = stdInput.readLine()) != null) {
            System.out.println(s);
        }

    }

}
4

1 回答 1

0

将 Python 路径和脚本路径更改为绝对路径

并将文件路径更改为logging.FileHandler绝对路径。

于 2020-04-28T11:09:52.883 回答