blob: 3a8ec8ad756797f003e9e0b458f1e4cb6fa29cf3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/usr/bin/env python
import datetime
import os
from grs.Constants import CONST
from grs.Rotator import Rotator
class Log(Rotator):
""" Initilize logs, log messages, or rotate logs. """
def __init__(self, logfile=CONST.LOGFILE):
self.logfile = logfile
# Make sure the log directory exists
os.makedirs(os.path.dirname(self.logfile), exist_ok=True)
open(self.logfile, 'a').close()
def log(self, msg, stamped=True):
# If requested, stamp a log message with the unix time.
if stamped:
current_time = datetime.datetime.now(datetime.timezone.utc)
unix_timestamp = current_time.timestamp()
msg = '[%f] %s' % (unix_timestamp, msg)
with open(self.logfile, 'a') as _file:
_file.write('%s\n' % msg)
def rotate_logs(self, upper_limit=20):
# Rotate all the previous logs
self.full_rotate(self.logfile, upper_limit=upper_limit)
open(self.logfile, 'a').close()
|