From 3d26a1bd8f9a8cd7fadb2bcffb9df74d782c1407 Mon Sep 17 00:00:00 2001 From: chynybekov Date: Tue, 21 Dec 2021 22:17:14 +0530 Subject: [PATCH 1/3] Increase api field length to 1024, Add support for list of dicts, timezone support added --- README.md | 31 +++++++++++++++------- dist/drf_api_logger-1.0.9.tar.gz | Bin 0 -> 16266 bytes drf_api_logger/admin.py | 16 ++++++----- drf_api_logger/migrations/0001_initial.py | 2 +- drf_api_logger/models.py | 2 +- drf_api_logger/utils.py | 14 ++++++---- setup.py | 2 +- 7 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 dist/drf_api_logger-1.0.9.tar.gz diff --git a/README.md b/README.md index bda54a0..bf5a30f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # DRF API Logger -![version](https://img.shields.io/badge/version-1.0.8-blue.svg) +![version](https://img.shields.io/badge/version-1.0.9-blue.svg) [![Downloads](https://static.pepy.tech/personalized-badge/drf-api-logger?period=total&units=none&left_color=black&right_color=orange&left_text=Downloads%20Total)](http://pepy.tech/project/drf-api-logger) [![Downloads](https://static.pepy.tech/personalized-badge/drf-api-logger?period=month&units=none&left_color=black&right_color=orange&left_text=Downloads%20Last%20Month)](https://pepy.tech/project/drf-api-logger) [![Downloads](https://static.pepy.tech/personalized-badge/drf-api-logger?period=week&units=none&left_color=black&right_color=orange&left_text=Downloads%20Last%20Week)](https://pepy.tech/project/drf-api-logger) @@ -175,13 +175,6 @@ Make sure to migrate the database specified in DRF_API_LOGGER_DEFAULT_DATABASE. """ ``` -### API with or without Host -You can specify an endpoint of API should have absolute URI or not by setting this variable in DRF settings.py file. -```python -DRF_API_LOGGER_PATH_TYPE = 'ABSOLUTE' # Default to ABSOLUTE if not specified -# Possible values are ABSOLUTE, FULL_PATH or RAW_URI -``` - ### Want to identify slow APIs? (Optional) You can also identify slow APIs by specifying `DRF_API_LOGGER_SLOW_API_ABOVE` in settings.py. @@ -191,6 +184,26 @@ DRF_API_LOGGER_SLOW_API_ABOVE = 200 # Default to None # Specify in milli-seconds. ``` +### Want to see the API information in local timezone? (Optional) +You can also identify slow APIs by specifying `DRF_API_LOGGER_TIMEDELTA` in settings.py. +It is going to display the API request time after adding the timedelta specified in the settings.py file. +It won't change the Database timezone. +```python +DRF_API_LOGGER_TIMEDELTA = 330 # UTC + 330 Minutes = IST (5:Hours, 30:Minutes ahead from UTC) +# Specify in minutes. +``` +```python +# Yoc can specify negative values for the countries behind the UTC timezone. +DRF_API_LOGGER_TIMEDELTA = -30 # Example +``` + +### API with or without Host +You can specify an endpoint of API should have absolute URI or not by setting this variable in DRF settings.py file. +```python +DRF_API_LOGGER_PATH_TYPE = 'ABSOLUTE' # Default to ABSOLUTE if not specified +# Possible values are ABSOLUTE, FULL_PATH or RAW_URI +``` + Considering we are accessing the following URL: http://127.0.0.1:8000/api/v1/?page=123 DRF_API_LOGGER_PATH_TYPE possible values are: 1. ABSOLUTE (Default) : @@ -232,7 +245,7 @@ DRF API Logger Model: ``` class APILogsModel(Model): id = models.BigAutoField(primary_key=True) - api = models.CharField(max_length=512, help_text='API URL') + api = models.CharField(max_length=1024, help_text='API URL') headers = models.TextField() body = models.TextField() method = models.CharField(max_length=10, db_index=True) diff --git a/dist/drf_api_logger-1.0.9.tar.gz b/dist/drf_api_logger-1.0.9.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4fd560809ae974bcb475de96ac6c2bad329bc655 GIT binary patch literal 16266 zcmcJWV{jnR*XCn8nb@|Si8T}3wrxyoCle&|v+BV1S9Gvx|<2lbODugQdQWy}7xm69Wq)Gb0b9i=h+9rLVR7 zdUL&npfv*kt9R(ORf`8v62=*kkY|-mB*Vzb{&Qk0B5|*dd-q`!P)#bHh&aH39l4VPe z5mAp<;D|f_Qovcyo3%i;ar46i#dUKWQtmb~5)yK<+1UjTseLL}mNdhDBZV7MbD>n?3>o&APUN48oN&na-~WEI18x`6b!SEVg9Xyp%39lSfRDktVaPpfiWjDwZYJsL6%(WGnoa{r@`l)q9~>^ zvh&r%;zQ+ykqg@k6?wO$D0@Q8W!5!J0_Kd@SlDDI+Ct4)Ta{yb zpR--ONx=q$0k7U=Sq9~WI>jqkqzxFfr3lxVGJYd}*$HqLNK9@7H}+OmSmH)q(z`UzMe>EMn)<>*_U!r?b4Kd0qc3nj@tPj%`7B zgbq{hZvXazWPQ=svoN>w2B+=h<;&3?QsZiIa!F19ZpVDFqIvDcJSf1^)72f!X_O<9 zU>yhsS@Q;l@WdsJ0B_QFZ6EfDLdtjk%m}iI0&q1zdc06 z&vMK5QX%=ZdxCl|A4|O4t&TKrI}P+Di<>yobLSyF*(jRVl_X&3b*4w|3+q@gbVvub1Kx9D`sq<rqDOtZ#t&BEli4GoBcy zoqCNz6%X4Y^~l)QxJ&@M=Sc2&VAHVPOGQwB9No`OIPLB^GxkS*+IRd_TYRW|zXOgdpFXs$1c+@iHn-)SUCJoVR|r zLBv_fAmq?peRejhdjXH{Y^95}DpN5AFhweLZCy&=1$5bmkSeTBdYr3Bgunv0{Cn{N zdwat0+lyTJCzNCCeU+a#sx8w$w1Z|kZx>nVOZZq8Pd8f{gJ`!kkX$+@gR*B49bbzV za7jutgy0+^NysRL;ewcE(X}7t@it%99bu9w^}kWP3&8L6Tm*dzuR>*5mjI;nARUoW(v2Y*J}M` zW&4sJc(mQ{wVyPTWTJwG*m_ihx}Ns08Nw^Bwpmh0>EzL^oLmat)_mp|b};%?QXev4 zzUdUNzOY$#Xff`y^)ctkk~L}X@w(*h58|9{`I`Z~fK9R4al`ZWt`chp%x6v8fu(+1 zL|#i*6WW)jXwFOHgpi4C>8AYjMpp}jrRlN3Qno=pFlp7vj>nnt276l-<&8W)r<@GdjM0A7bug(3eE+c})$g#OT8 zcONVm>7eTo(gB)$p1_b^$))4oPn|Pd*_^4?AlFx7i4uj$Dz>?I zl_ayeh(m_bikt>Th(UKnNQLwX+iwTo!{G2wh%3i$r+A$iioGxTSm_9r^J2@WBrxXO zOt@Hd(9llIXCOfFpg2OI)O;jORAh~RPQ!%!`g~M(?;{CP`1T~#Y{#aHDRoplDQ1dG zz=%{GTCg=F4%lpTwBaa~%fi7dX8bVHefm{1xKm~!76F%-SRjv~3a(qKH1iYUkeNw# zo-{E(GZh*NR5gC%fud0K`Z$#;LQ--qjbik-LIa)a@E;a(CSJpBI^Q49^M^YZ7x{7K z4iSWrdNt3}N-OL^3x<_Z+Ah6v$$1|RIK{TsZupZ5ofAy>6Y$Z9iztV`zb@4JUCqX6 zKHh#FBd?
  • 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 Date: Tue, 21 Dec 2021 22:27:01 +0530 Subject: [PATCH 2/3] Migrations file updated --- drf_api_logger/migrations/0001_initial.py | 2 +- .../migrations/0002_auto_20211221_2155.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 drf_api_logger/migrations/0002_auto_20211221_2155.py diff --git a/drf_api_logger/migrations/0001_initial.py b/drf_api_logger/migrations/0001_initial.py index cc1d9bb..857f77d 100644 --- a/drf_api_logger/migrations/0001_initial.py +++ b/drf_api_logger/migrations/0001_initial.py @@ -16,7 +16,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('added_on', models.DateTimeField()), - ('api', models.CharField(help_text='API URL', max_length=1024)), + ('api', models.CharField(help_text='API URL', max_length=512)), ('headers', models.TextField()), ('body', models.TextField()), ('method', models.CharField(db_index=True, max_length=10)), diff --git a/drf_api_logger/migrations/0002_auto_20211221_2155.py b/drf_api_logger/migrations/0002_auto_20211221_2155.py new file mode 100644 index 0000000..be31ffe --- /dev/null +++ b/drf_api_logger/migrations/0002_auto_20211221_2155.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.5 on 2021-12-21 16:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('drf_api_logger', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='apilogsmodel', + name='api', + field=models.CharField(help_text='API URL', max_length=1024), + ), + ] From c2ca0278a3f2f87da813178336292d1dab4cba48 Mon Sep 17 00:00:00 2001 From: chynybekov Date: Tue, 21 Dec 2021 22:27:58 +0530 Subject: [PATCH 3/3] package updated --- dist/drf_api_logger-1.0.9.tar.gz | Bin 16266 -> 16776 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dist/drf_api_logger-1.0.9.tar.gz b/dist/drf_api_logger-1.0.9.tar.gz index 4fd560809ae974bcb475de96ac6c2bad329bc655..20b5bacd4e0897cec607298447d338cd90502fcf 100644 GIT binary patch literal 16776 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
  • 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