Added csv file logging

This commit is contained in:
Timofey Mazurov 2021-03-17 03:13:37 +03:00
parent 933ebb72d6
commit 259ab76cba
2 changed files with 30 additions and 3 deletions

1
.gitignore vendored
View File

@ -12,6 +12,7 @@ local_settings.py
db.sqlite3
db.sqlite3-journal
media/
logs.csv
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
# in your Git repository. Update and uncomment the following line accordingly.

View File

@ -393,9 +393,7 @@ class DatabaseHandler(logging.Handler):
self.database = RoleChangeLogs()
def emit(self, record):
# admin = ZendeskAdmin()
user = record.msg
# data = UserProfile.objects.filter(user=user.user)
self.database.name = user.name
self.database.user = user.user
self.database.changed_by = user.user
@ -407,9 +405,37 @@ class DatabaseHandler(logging.Handler):
self.database.save()
class CsvFormatter(logging.Formatter):
def __init__(self):
logging.Formatter.__init__(self)
def format(self, record):
user = record.msg
msg = ''
msg += user.name
if user.custom_role_id == ROLES['engineer']:
msg += ',engineer,'
elif user.custom_role_id == ROLES['light_agent']:
msg.append('light_agent')
time = str(timezone.now().today())
msg += time[:16]
msg += ','
msg += user.name
return msg
def log(user):
"""
Осуществляет запись логов в базу данных и csv файл
:param user: request.user.userprofile
:return:
"""
dbhandler = DatabaseHandler()
logging.getLogger('MY_LOGGER').addHandler(dbhandler)
csvformatter = CsvFormatter()
csvhandler = logging.FileHandler('logs.csv', "a")
csvhandler.setFormatter(csvformatter)
logger = logging.getLogger('MY_LOGGER')
logger.addHandler(dbhandler)
logger.addHandler(csvhandler)
logger.setLevel('INFO')
logger.info(user)