From 5d98792d09e78b7f1a3ecdaba458a0c3c74a0faf Mon Sep 17 00:00:00 2001 From: Johannes Christ Date: Sun, 7 Apr 2019 22:57:28 +0200 Subject: Add the `LogEntry` model. --- pydis_site/apps/api/models.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'pydis_site/apps/api/models.py') diff --git a/pydis_site/apps/api/models.py b/pydis_site/apps/api/models.py index 86c99f86..a541e4ab 100644 --- a/pydis_site/apps/api/models.py +++ b/pydis_site/apps/api/models.py @@ -450,3 +450,45 @@ class Nomination(ModelReprMixin, models.Model): auto_now_add=True, help_text="The creation date of this nomination." ) + +class LogEntry(ModelReprMixin, models.Model): + """A log entry generated by one of the PyDis applications.""" + + application = models.CharField( + max_length=20, + help_text="The application that generated this log entry.", + choices=( + ('bot', 'Bot'), + ('seasonalbot', 'Seasonalbot'), + ('site', 'Website') + ) + ) + logger_name = models.CharField( + max_length=100, + help_text="The name of the logger that generated this log entry." + ) + timestamp = models.DateTimeField( + default=timezone.now, + help_text="The date and time when this entry was created." + ) + level = models.CharField( + max_length=8, # 'critical' + choices=( + ('debug', 'Debug'), + ('info', 'Info'), + ('warning', 'Warning'), + ('error', 'Error'), + ('critical', 'Critical') + ), + help_text=( + "The logger level at which this entry was emitted. The levels " + "correspond to the Python `logging` levels." + ) + ) + module = models.CharField( + max_length=100, + help_text="The fully qualified path of the module generating this log line." + ) + line = models.PositiveSmallIntegerField( + help_text="The line at which the log line was emitted." + ) -- cgit v1.2.3 From 91294e94e1205ba32b12d0cebc899d1337583740 Mon Sep 17 00:00:00 2001 From: Johannes Christ Date: Sun, 7 Apr 2019 23:34:42 +0200 Subject: Minor formatting improvements. --- pydis_site/apps/api/models.py | 1 + 1 file changed, 1 insertion(+) (limited to 'pydis_site/apps/api/models.py') diff --git a/pydis_site/apps/api/models.py b/pydis_site/apps/api/models.py index a541e4ab..35b76c4c 100644 --- a/pydis_site/apps/api/models.py +++ b/pydis_site/apps/api/models.py @@ -451,6 +451,7 @@ class Nomination(ModelReprMixin, models.Model): help_text="The creation date of this nomination." ) + class LogEntry(ModelReprMixin, models.Model): """A log entry generated by one of the PyDis applications.""" -- cgit v1.2.3 From 2a4e5e606520fca4649b2a7c40e73e8380e4798d Mon Sep 17 00:00:00 2001 From: Johannes Christ Date: Mon, 8 Apr 2019 20:28:48 +0200 Subject: Add the `message` field. --- pydis_site/apps/api/migrations/0035_create_table_log_entry.py | 3 ++- pydis_site/apps/api/models.py | 3 +++ pydis_site/apps/api/serializers.py | 3 +-- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'pydis_site/apps/api/models.py') diff --git a/pydis_site/apps/api/migrations/0035_create_table_log_entry.py b/pydis_site/apps/api/migrations/0035_create_table_log_entry.py index 30ff1ffd..a8256a0e 100644 --- a/pydis_site/apps/api/migrations/0035_create_table_log_entry.py +++ b/pydis_site/apps/api/migrations/0035_create_table_log_entry.py @@ -1,4 +1,4 @@ -# Generated by Django 2.1.5 on 2019-04-07 20:53 +# Generated by Django 2.1.5 on 2019-04-08 18:27 from django.db import migrations, models import django.utils.timezone @@ -22,6 +22,7 @@ class Migration(migrations.Migration): ('level', models.CharField(choices=[('debug', 'Debug'), ('info', 'Info'), ('warning', 'Warning'), ('error', 'Error'), ('critical', 'Critical')], help_text='The logger level at which this entry was emitted. The levels correspond to the Python `logging` levels.', max_length=8)), ('module', models.CharField(help_text='The fully qualified path of the module generating this log line.', max_length=100)), ('line', models.PositiveSmallIntegerField(help_text='The line at which the log line was emitted.')), + ('message', models.TextField(help_text='The textual content of the log line.')), ], bases=(pydis_site.apps.api.models.ModelReprMixin, models.Model), ), diff --git a/pydis_site/apps/api/models.py b/pydis_site/apps/api/models.py index 35b76c4c..b2499f8d 100644 --- a/pydis_site/apps/api/models.py +++ b/pydis_site/apps/api/models.py @@ -493,3 +493,6 @@ class LogEntry(ModelReprMixin, models.Model): line = models.PositiveSmallIntegerField( help_text="The line at which the log line was emitted." ) + message = models.TextField( + help_text="The textual content of the log line." + ) diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index 2b0a687f..8f045044 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -1,5 +1,4 @@ from rest_framework.serializers import ModelSerializer, PrimaryKeyRelatedField, ValidationError -from rest_framework.validators import UniqueValidator from rest_framework_bulk import BulkSerializerMixin from .models import ( @@ -107,7 +106,7 @@ class LogEntrySerializer(ModelSerializer): model = LogEntry fields = ( 'application', 'logger_name', 'timestamp', - 'level', 'module', 'line' + 'level', 'module', 'line', 'message' ) -- cgit v1.2.3