问题描述
我正在从S3中提取gzip文件,然后使用Python的sysloghandler将数据发送到远程syslog服务器。目前,我可以提取数据,然后将其发送到syslog服务器,但是提取日志文件时的格式存在疑问。
<14> 2020-10-21T15:37:18.823725+00:00 2020-10-21T15:37:18.823725+00:00 10.14.132.140 {"type": "end.start","process_guid":"7M9F","parent_guid":"7M9F3L90364-000000005","backend_timestamp":"2020-09-25 14:06:40 +0000"}
您会看到第一部分如何显示两个日期- 2020-10-21T15:37:18.823725 + 00:00 2020-10-21T15:37:18.823725 + 00:00 10.14.132.140 。为什么这样做呢?我只想约会。
Here is my code below:
def load_past_keys(s3_conn,s3_bucket):
my_logger = logging.getLogger('MyLogger')
# We will pass the message as INFO
my_logger.setLevel(logging.INFO)
# my_logger.setLevel(logging.INFO)
syslog = logging.handlers.SysLogHandler(address=('my.address.com',<my port>))
my_logger.addHandler(syslog)
print('Get Last Key in bucket-----------------------------------Start')
prefix = "prefix"
get_last_modified = lambda obj: obj.last_modified
objects = [obj for obj in s3_bucket.objects.filter(Prefix=prefix)]
objects = [obj for obj in sorted(objects,key=get_last_modified)]
start_date = objects[-1].last_modified
start_time = str(start_date)
print('Get Last Key in bucket-----------------------------------DONE')
for objects in s3_bucket.objects.filter(Prefix=prefix):
try:
print('Load objects----Start')
if str(objects.last_modified) <= start_time:
the_obj_key = objects.key
the_obj_last_modified = objects.last_modified
obj = s3_conn.Object(aws_configs['bucket_name'],the_obj_key)
with gzip.GzipFile(fileobj=obj.get()["Body"],mode='rb') as gzip_file:
contents = gzip_file.readlines()
for line in contents:
a = json.loads(line)
my_logger.info('%s',line.decode("utf-8").strip())
except Exception as e:
print(e)
success_or_failure = False
else:
success_or_failure = True
finally:
print('Load ---Done')
我是syslog和handler的新手,所以关于输出为何显示两个日期的任何想法或建议都会有所帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)