我们的团队使用python记录一些用户访问活动。
我们创建了本地日志记录和Google云日志记录(Stackdriver)来捕获异常。
Our team's Stackdriver log shows 2 entries
我还用自己的Google Cloud Stackdriver log进行了测试。显示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添加了注释掉的代码,将不会有任何结果。我很确定语法很好。
请帮帮我。 非常感谢你们
答案 0 :(得分:0)
您使用的insertId
错误。 Stackdriver Logging 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会自动设置一个。