Если это всего лишь один процесс, то нет, они не могут писать одновременно.Все гринлеты работают в одном потоке ОС и планируются совместно, одновременно может быть запущен только один.
with open('log', 'w') as log:
jobs = [gevent.spawn(log.write, 'event %d' % i) for i in range(10)]
gevent.joinall(jobs)
... приведет к тому, что гринлеты будут записывать в журнал одну за другой.
Если у вас несколько процессов, я бы предложил войти в систему redis
или, возможно, использовать zeromq для входа в выделенный демон.Или используйте другой внешний демон ведения журнала.