我们的团队使用python记录一些用户访问活动。
我们创建了本地日志记录和谷歌云日志记录(Stackdriver)来捕获异常。
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添加了注释掉的代码,那么什么都不会通过。我很确定语法很好。
请帮帮我。非常感谢你们
您正在使用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将自动设置一个。