Skip to content

Commit 02d30e2

Browse files
peterbppbgsilvaptBogdan Peter
authored
custom output should account for the current verbosity level (#7) (#8)
* custom output should account for the current verbosity level --------- Signed-off-by: peterbppb <91122533+peterbppb@users.noreply.github.com> Co-authored-by: Gustavo Silva <gustavosantaremsilva@gmail.com> Co-authored-by: Bogdan Peter <bogdan.peter@paddypowerbetfair.com>
1 parent ddffb85 commit 02d30e2

4 files changed

Lines changed: 21 additions & 14 deletions

File tree

logbasecommand/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.0.2'
1+
__version__ = "0.0.3"

logbasecommand/base.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ class LogBaseCommand(BaseCommand):
1414

1515
def __init__(self, *args, **kwargs):
1616
super().__init__(*args, **kwargs)
17-
prefix = getattr(settings, 'LOGBASECOMMAND_PREFIX', None) or __name__
18-
self.logger = logging.getLogger(prefix + '.' + self.__module__.split('.')[-1])
17+
prefix = getattr(settings, "LOGBASECOMMAND_PREFIX", None) or __name__
18+
self.logger = logging.getLogger(prefix + "." + self.__module__.split(".")[-1])
1919

2020
def __handle_custom_std(self, ifstd, std, msg, *args):
2121
if ifstd:
@@ -33,32 +33,38 @@ def log_debug(self, msg, *args, **kwargs):
3333
return self.logger.debug(msg, *args, **kwargs)
3434

3535
def log(self, msg, *args, **kwargs):
36-
self.__custom_stdout(msg, *args)
36+
if self.logger.level <= logging.INFO:
37+
self.__custom_stdout(msg, *args)
3738
return self.logger.info(msg, *args, **kwargs)
3839

3940
def log_warning(self, msg, *args, **kwargs):
40-
self.__custom_stderr(msg, *args)
41+
if self.logger.level <= logging.WARNING:
42+
self.__custom_stderr(msg, *args)
4143
return self.logger.warning(msg, *args, **kwargs)
4244

4345
def log_error(self, msg, *args, **kwargs):
44-
self.__custom_stderr(msg, *args)
46+
if self.logger.level <= logging.ERROR:
47+
self.__custom_stderr(msg, *args)
4548
return self.logger.error(msg, *args, **kwargs)
4649

4750
def log_exception(self, msg, *args, **kwargs):
4851
self.__custom_stderr(msg, *args)
4952
return self.logger.exception(msg, *args, **kwargs)
5053

5154
def execute(self, *args, **options):
52-
self.verbosity = options['verbosity']
55+
self.verbosity = options["verbosity"]
5356
self.logger.setLevel(
54-
[logging.ERROR, max(self.logger.getEffectiveLevel(), logging.INFO), logging.DEBUG, logging.DEBUG][
55-
self.verbosity
56-
]
57+
[
58+
logging.ERROR,
59+
max(self.logger.getEffectiveLevel(), logging.INFO),
60+
logging.DEBUG,
61+
logging.DEBUG,
62+
][self.verbosity]
5763
)
5864

59-
if options.get('stdout') is not None:
65+
if options.get("stdout") is not None:
6066
self.custom_stdout = True
61-
if options.get('stderr') is not None:
67+
if options.get("stderr") is not None:
6268
self.custom_stderr = True
6369

6470
super().execute(*args, **options)

testapp/testapp/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
1. Import the include() function: from django.urls import include, path
1414
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
1515
"""
16+
1617
from django.contrib import admin
1718
from django.urls import path
1819

1920
urlpatterns = [
20-
path('admin/', admin.site.urls),
21+
path("admin/", admin.site.urls),
2122
]

testapp/tests/test_command.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ def test_silent(self):
2525
out = StringIO()
2626
err = StringIO()
2727
call_command('some_command', verbosity=0, stdout=out, stderr=err)
28-
self.assertEqual(out.getvalue(), 'info message\n')
28+
self.assertEqual(out.getvalue(), '')
2929
self.assertEqual(err.getvalue(), 'error message\nexception handled\n')

0 commit comments

Comments
 (0)