Уровни журнала в Stackdriver

У меня в GCP Flex есть простой сервис:

import logging
from flask import Flask
app = Flask(__name__)

logging.basicConfig(level=logging.DEBUG)

@app.route('/hello')
def hello():
    logging.debug('hello')
    return 'hello'

Если посмотреть на Stackdriver, этот журнал отображается в stderr, например:

15: 32: 38.000 ОТЛАДКА: корень: привет

Пара проблем с этим:

  • метки времени должны иметь точность в миллисекундах (всегда .000)
  • журналы не могут быть отфильтрованы с помощью фильтра уровня журнала stackdriver

Есть ли способ решить эти проблемы? logging нужно как-то настраивать?


person zoran119    schedule 15.03.2017    source источник


Ответы (1)


Если вам нужно просмотреть журналы в stackdriver, просто используйте команду print (в Python) или System.out.print(java) в своем коде. Он появится в Stackdriver.

eg: print ("hello") or

System.out.println("hello");

И отметка времени в формате Zulu. (например: timestamp: "2018-07-18T10:16:46Z").

вы можете получить представление, обратившись к этому.

person Sachith.Wanni    schedule 18.07.2018
comment
Я проголосовал против, потому что использование модуля ведения журнала лучше, чем использование печати, а System.out.println - это java, а не python. Я рекомендую эту статью medium.com/retailmenot-engineering/ для лучшей интеграции с Stackdriver. - person firescar96; 25.03.2019
comment
Примеры печати приведены как для python, так и для java. И когда этот ответ будет опубликован (в 2018 году), у Stackdriver была ошибка. В то время, если вы хотели отфильтровать журналы, вы должны были сделать это. Теперь это исправлено. @ firescar96 - person Sachith.Wanni; 12.12.2020