У меня есть лямбда, которая использует библиотеку Python awscli
. Вот некоторые из ключевых частей кода:
from awscli.clidrier import create_clidriver
def handler():
command = ['s3', 'sync', from_folder, to_folder, '--quiet']
exit_code = create_clidriver().main(command)
В моих журналах CloudWatch я получаю строку журнала для каждого синхронизируемого файла, например:
[DEBUG] 2019-05-17T19:26:22.116Z ... Using a multipart threshold of 8388608 and a part size of 8388608
[DEBUG] 2019-05-17T19:26:22.322Z... syncing: MY_S3_KEY -> /tmp/MY_MATCHING_PATH, file does not exist at destination
<continues for every synced file...>
Я хочу отключить эти DEBUG
журналы, потому что они слишком перегружены - я синхронизирую тонны маленьких файлов.
Но я не могу понять, как это сделать. флаг --quiet
не работает должным образом. Поскольку на них написано DEBUG
, я подумал, что, возможно, они поступают из библиотеки Python logging
, и поэтому попытался сделать это в моем лямбда-стартапе:
for logger_name in logging.root.manager.loggerDict:
print(f"found a logger:{logger_name}")
logger = logging.getLogger(logger_name)
logger.setLevel(logging.INFO)
Но журналы DEBUG
все еще там после запуска с этим кодом. Когда я запускаю код локально (не через SAM, а просто используя `if name == ' main '), у меня нет всех этих журналов печати, поэтому что-то есть в Lambda контекст выполнения, который добавляет это. Есть идеи?
Спасибо!