Kubelet запускается как демон systemd внутри рабочих узлов EKS. Вы можете подключиться по SSH к рабочему экземпляру EC2 и попробовать запустить systemctl status kubelet.
да, можно присвоиться sys.stdout
к чему Вы хотите. Создайте немного класса с a write
метод, который ничего не делает:
class DevNull(object):
def write(self, arg):
pass
import sys
sys.stdout = DevNull()
print "this goes to nirvana!"
С той же техникой можно было также зарегистрировать печать в файл путем установки sys.stdout
к открытому объекту файла.
Я знаю, что ответ был уже отмечен как корректный, но Python имеет флаг отладки, который предоставляет более чистое решение. Вы используете его как это:
if __debug__:
print "whoa"
Если Вы вызываете Python с-O или - OO (как Вы обычно были бы для сборки конечных версий), __debug__
установлен на False
. То, что еще лучше, является этим __debug__
особый случай для интерпретатора; это на самом деле разделит, что код, когда это запишет pyc/pyo
файлы, делая получающийся код меньшим/быстрее. Обратите внимание, что Вы не можете присвоить значения __debug__
, таким образом, это полностью базируется от тех параметров командной строки.
Не используйте печать, но делайте консольный класс, который обрабатывает всю печать. Просто выполните вызовы к консоли, и консоль может решить, распечатать ли на самом деле их. Консольный класс также полезен для вещей как ошибка и предупреждающие сообщения или перенаправление, куда вывод идет.
Регистрирующийся модуль является "лучшим" путем.. хотя я довольно часто просто использую что-то простое как..
class MyLogger:
def _displayMessage(self, message, level = None):
# This can be modified easily
if level is not None:
print "[%s] %s" % (level, message
else:
print "[default] %s" % (message)
def debug(self, message):
self._displayMessage(message, level = "debug")
def info(self, message):
self._displayMessage(message, level = "info")
log = MyLogger()
log.info("test")