mirror of
https://gitlab.com/jeancf/twoot.git
synced 2025-02-22 16:22:12 +00:00
Moved log cleanup to terminate()
This commit is contained in:
parent
3c5d1ac105
commit
d018cbb114
91
twoot.py
91
twoot.py
|
@ -543,6 +543,52 @@ def terminate(exit_code):
|
|||
"""
|
||||
logging.info('Run time : {t:2.1f} seconds.'.format(t=time.time() - START_TIME))
|
||||
logging.info('_____________________________________________________________________________________')
|
||||
|
||||
# Close logger and log file
|
||||
logging.shutdown()
|
||||
|
||||
# Remove older log messages
|
||||
# Max allowed age of log message
|
||||
max_delta = timedelta(TOML['options']['log_days'])
|
||||
|
||||
# Open log file
|
||||
log_file_name = TOML['config']['twitter_account'] + '.log'
|
||||
new_log_file_name = TOML['config']['twitter_account'] + '.log.new'
|
||||
try:
|
||||
log_file = open(log_file_name, 'r')
|
||||
except FileNotFoundError:
|
||||
# Nothing to do if there is no log file
|
||||
exit(exit_code)
|
||||
|
||||
# Check each line
|
||||
pos = log_file.tell()
|
||||
while log_file:
|
||||
line = log_file.readline()
|
||||
try:
|
||||
# Extract date on log line
|
||||
date = datetime.strptime(line[:10], '%Y-%m-%d')
|
||||
except ValueError:
|
||||
# date was not found on this line, try next one
|
||||
continue
|
||||
# Time difference between log message and now
|
||||
log_delta = datetime.now() - date
|
||||
# Only keep the number of days of the difference
|
||||
log_delta = timedelta(days=log_delta.days)
|
||||
if log_delta < max_delta:
|
||||
# Reset file pointer to position before reading last line
|
||||
log_file.seek(pos)
|
||||
remainder = log_file.read()
|
||||
output_file = open(new_log_file_name, 'w')
|
||||
output_file.write(remainder)
|
||||
output_file.close()
|
||||
# replace log file by new one
|
||||
shutil.move(new_log_file_name, log_file_name)
|
||||
|
||||
break # Exit while loop
|
||||
|
||||
# Update read pointer position
|
||||
pos = log_file.tell()
|
||||
|
||||
exit(exit_code)
|
||||
|
||||
|
||||
|
@ -974,51 +1020,6 @@ def main(argv):
|
|||
|
||||
logging.info('Deleted ' + str(excess_count) + ' old records from database.')
|
||||
|
||||
# Close logger and log file
|
||||
logging.shutdown()
|
||||
|
||||
# Remove older log messages
|
||||
# Max allowed age of log message
|
||||
max_delta = timedelta(TOML['options']['log_days'])
|
||||
|
||||
# Open log file
|
||||
log_file_name = TOML['config']['twitter_account'] + '.log'
|
||||
new_log_file_name = TOML['config']['twitter_account'] + '.log.new'
|
||||
try:
|
||||
log_file = open(log_file_name, 'r')
|
||||
except FileNotFoundError:
|
||||
# Nothing to do if there is no log file
|
||||
terminate(0)
|
||||
|
||||
# Check each line
|
||||
pos = log_file.tell()
|
||||
while log_file:
|
||||
line = log_file.readline()
|
||||
try:
|
||||
# Extract date on log line
|
||||
date = datetime.strptime(line[:10], '%Y-%m-%d')
|
||||
except ValueError:
|
||||
# date was not found on this line, try next one
|
||||
continue
|
||||
# Time difference between log message and now
|
||||
log_delta = datetime.now() - date
|
||||
# Only keep the number of days of the difference
|
||||
log_delta = timedelta(days=log_delta.days)
|
||||
if log_delta < max_delta:
|
||||
# Reset file pointer to position before reading last line
|
||||
log_file.seek(pos)
|
||||
remainder = log_file.read()
|
||||
output_file = open(new_log_file_name, 'w')
|
||||
output_file.write(remainder)
|
||||
output_file.close()
|
||||
# replace log file by new one
|
||||
shutil.move(new_log_file_name, log_file_name)
|
||||
|
||||
break # Exit while loop
|
||||
|
||||
# Update read pointer position
|
||||
pos = log_file.tell()
|
||||
|
||||
terminate(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
Loading…
Reference in New Issue
Block a user