Zapisywanie logow z pracy pythona do pliku txt

Odpowiedz Nowy wątek
2019-07-05 08:41
0

Hej, mam pewnien problem. Uruchamiam plik .bat ktory uruchamia plik pythona z testami. Wykonanie calego pliku trwa kilka godzin, dlatego dobrze by bylo móc gdzieś zapisać konsole pythona w razie bledu. Probowalem w taki sposob:

def run_and_save_output():
    logfile = open(log_file, 'w')
    proc = subprocess.Popen([sys.executable, script_name], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in proc.stdout:
        sys.stdout.write(line)
        logfile.write(line)
    proc.wait()

generalnie dla malych plikow dziala fajnie, jest plik z logami i sa wyniki w konsoli. Natomiast gdy uruchamiam duzy plik jak ten z testami to pojawia sie problem taki ze w konsoli nie ma nic dośc długo, wyglada jakby sie zwiesilo i dopiero po jakims czasie sie pojawiaja informacje takimi porcjami i sa niekompletne i w innym porządku niz podczas normlanego uruchamiania.
Probowalem też innym sposobem, w batchu za pomoca tego : > np

python run_test.py > log_file.txt

W tym przypadku w consoli nie ma nic, natomiast log file tez ma zaburzona kolejnosc i nie ma tam wszystkich informacji.

Plik z testami uruchamia też za pomocą os.system inny plik pythona i interperter ( python 2.2) oraz konsole Matlaba. W logach wyglada to tak jakby raz bylo info z konsoli pythona 2.2 , raz z pythona 2.7.
Jest jakis sposob by skopiowac całą konsole pythona/batcha do pliku .txt ?

Pozostało 580 znaków

2019-07-05 08:48
0

Nie możesz wprost some.bat > log.txt? :-P
(+ ofc. stderr oraz inne możliwe streamy)


edytowany 2x, ostatnio: Patryk27, 2019-07-05 10:31

Pozostało 580 znaków

2019-07-05 10:18
1

Przeczytaj sobie to https://realpython.com/python-logging/ , logi się będą odkładały tam gdzie chcesz ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0