Stackdriver日志记录错过了日志条目

问题描述 投票:0回答:1

我们的团队使用python记录一些用户访问活动。

我们创建了本地日志记录和谷歌云日志记录(Stackdriver)来捕获异常。

Local log shows 5 entries

Our team's Stackdriver log shows 2 entries

我还测试了自己的谷歌云堆栈驱动程序日志。它显示了5次尝试。

这是代码:

local_logger = local_logging.getLogger(__name__)
local_logger.setLevel(local_logging.INFO)

handler = local_logging.FileHandler('Azure-user-access-audit-log.log')
handler.setLevel(local_logging.CRITICAL)


local_logging.Formatter.converter = time.gmtime
formatter = local_logging.Formatter('%(asctime)s | %(levelname)s | %(message)s')
handler.setFormatter(formatter)

local_logger.addHandler(handler)

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]  = "my-credential.json"
logging_client = cloud_logging.Client()
log_name = 'Azure-user-access-audit-log'
cloud_logger = logging_client.logger(log_name)

............

   if item['subcriptionType'] == 'Hacker':
        user_log = str(item['cloudName'] + " - " + item['tenantId'] + " | " +
            item['subcriptionType'] + " " + item['principalName'] + " has access to " + item['subscriptionName'] + " as "
            + item['roleDefinitionName'])
        local_logger.critical(user_log)

        # The data to log to Google Cloud
        google_log_message = item['subcriptionType'] + " " + item['principalName'] + " has access to " + item['subscriptionName'] + " as " + item['roleDefinitionName']
        google_log_severity = 'CRITICAL'
        google_log_insert_id = item['cloudName'] + " - " + item['tenantId']
        print(google_log_message)
        print(google_log_severity)
        print(google_log_insert_id)

        # Writes the log entry
        # cloud_logger.log_text(str(google_log_message), severity = str(google_log_severity), insert_id = str(google_log_insert_id))
        #             # cloud_logger.log_struct({
        #             #     'subcriptionType': item['subcriptionType'],
        #             #     'principalName': item['principalName'],
        #             #     'subscriptionName': item['subscriptionName']
        #             # }, severity = str(google_log_severity), insert_id = str(google_log_insert_id))
        cloud_logger.log_text(str(google_log_message))

如果我为严重性和插入ID添加了注释掉的代码,那么什么都不会通过。我很确定语法很好。

请帮帮我。非常感谢你们

python-3.x logging google-cloud-platform stackdriver google-cloud-stackdriver
1个回答
0
投票

您正在使用insertId错误。 Stackdriver日志API considers all log entries in the same project, with the same timestamp, and with the same insertId to be duplicates which can be removed。你所有的insertId值似乎都是一样的。您在Stackdriver Logging中看到两个条目而不是一个条目的唯一原因是,通过它的两个条目具有不同的时间戳。

你可以省略insertId字段。 API将自动设置一个。

© www.soinside.com 2019 - 2024. All rights reserved.