> а ничего туда не пишется
Всё туда пишется, откройте для себя буферизацию. В данном случае как минимум системный присутствует, есть ли у Python – не знаю. Собственно я как бы намекнул одной закомментированой строкой, что чего, а нужно ли, это уже не ко мне.
Или после завершения приложения файл всё ещё пустой? В это трудно поверить.
> вам придется писать каждый раз logfile.close()
И зачем придётся это писать каждый раз? И вы забыли сказать, что в таком случае (если использовать мой код), так же каждый раз придётся писать
logfile = None и каждый раз будет срабатывать
if logfile is None: … и каждый раз будет открываться один и тот же файл. И зачем я так странно сделал? А, ну да, что бы на 10000 лог-сообщений 10000 раз открывать и 10000 раз закрывать файл.
Зачем дурацкие советы даёте?
За `close` в подавляющем большинстве случаев переживать не нужно, всё там рано или поздно закроется (когда потеряется последняя ссылка на файловый объект). Но вообще про
with open(…) знать конечно нужно.
Можно сделать так, если заняться больше нечем:
import atexit
logfile = None
# ...
if logfile is None:
logfile = open(...)
atexit.register(logfile.close)
# ...
p.s. Зачем два раза `strftime`, в чём прикол, что бы одна и та же лог-запись с разным временем на экране и в файле была или просто слишком много ядер на вашем дрофоне?
..bw