Регистрация операций оболочки Django в Google Cloud
Мы используем Django shell (shell_plus, если быть точным) для выполнения некоторых операций с нашими данными. Мы хотели бы регистрировать все операции, чтобы соответствовать некоторым правилам. Например, если мы находимся в оболочке сейчас:
>> user = User.objects.get(id=1)
>> user.name
>> Steve
Эти 3 строки кода должны быть записаны в журнал (в идеале - в журнал Google Cloud). То, что я нашел до сих пор, это использование iPython и их магической команды logstart. Для этого мне нужно создать файл ipython-config.py
, в котором я указываю файл журнала:
# ipython-config.py
c = get_config()
time_stamp = datetime.now().strftime("%Y-%m-%d-%H-%M")
c.InteractiveShellApp.exec_lines = ["%%logstart -t -o /var/log/django/shell-%s.log"" % time_stamp]
Теперь он автоматически создаст файл и сохранит все (в основном то, что нам нужно). Однако нам нужно, чтобы они находились в облачных журналах Google.
Один из вариантов - использовать либу google.cloud.logging
для python, создать клиента и затем, если мы запустим logging.info(msg) (из стандартной либы python), мы получим их запись в GC.
Но магическая функция iPython logstart
, похоже, даже не ведет журнал в stdout, только в файл.
Есть ли что-нибудь, что мы можем сделать для достижения этой цели?