julien-python-toolkit 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/PKG-INFO +1 -1
- julien_python_toolkit-0.1.1/julien_python_toolkit/log_utilities.py +71 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit.egg-info/PKG-INFO +1 -1
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit.egg-info/SOURCES.txt +1 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/setup.py +1 -1
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/LICENSE.txt +0 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/README.md +0 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit/__init__.py +0 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit.egg-info/dependency_links.txt +0 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit.egg-info/top_level.txt +0 -0
- {julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: julien-python-toolkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Important code that I reuse through multiple projects. Please see license for allowed use.
|
|
5
5
|
Home-page: https://github.com/JulienPython/JulienPythonToolkit-V001
|
|
6
6
|
Author: Julien Python
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# This file is part of the "your-package-name" project.
|
|
2
|
+
# It is licensed under the "Custom Non-Commercial License".
|
|
3
|
+
# You may not use this file for commercial purposes without
|
|
4
|
+
# explicit permission from the author.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
import logging
|
|
8
|
+
import logging.handlers
|
|
9
|
+
import os
|
|
10
|
+
|
|
11
|
+
# Helper Tools
|
|
12
|
+
DEBUG = logging.DEBUG
|
|
13
|
+
INFO = logging.INFO
|
|
14
|
+
WARNING = logging.WARNING
|
|
15
|
+
ERROR = logging.ERROR
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Logger():
|
|
19
|
+
|
|
20
|
+
def __init__(self, name, file_name, stream_log_level = WARNING, file_log_level = INFO):
|
|
21
|
+
|
|
22
|
+
self._logger = self._set_logger(name, file_name, stream_log_level, file_log_level)
|
|
23
|
+
|
|
24
|
+
def _set_logger(self, name, file_name, stream_log_level = logging.WARNING, file_log_level = logging.INFO):
|
|
25
|
+
|
|
26
|
+
log_folder = os.path.join(os.getcwd(), "logs")
|
|
27
|
+
|
|
28
|
+
if not os.path.exists(log_folder):
|
|
29
|
+
os.makedirs(log_folder)
|
|
30
|
+
|
|
31
|
+
logger = logging.getLogger(name)
|
|
32
|
+
logger.setLevel(logging.DEBUG)
|
|
33
|
+
|
|
34
|
+
handler = logging.StreamHandler() # Add a stream handler to print logs to the console
|
|
35
|
+
handler.setLevel(stream_log_level)
|
|
36
|
+
|
|
37
|
+
file_handler = logging.handlers.RotatingFileHandler(filename=os.path.join(log_folder, file_name), maxBytes=1024*1024, backupCount=5)
|
|
38
|
+
file_handler.setLevel(file_log_level)
|
|
39
|
+
|
|
40
|
+
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
|
|
41
|
+
handler.setFormatter(formatter)
|
|
42
|
+
file_handler.setFormatter(formatter)
|
|
43
|
+
|
|
44
|
+
logger.addHandler(handler)
|
|
45
|
+
logger.addHandler(file_handler)
|
|
46
|
+
|
|
47
|
+
return logger
|
|
48
|
+
|
|
49
|
+
def debug(self, message):
|
|
50
|
+
self._logger.debug(message)
|
|
51
|
+
|
|
52
|
+
def info(self, message):
|
|
53
|
+
self._logger.info(message)
|
|
54
|
+
|
|
55
|
+
def warn(self, message):
|
|
56
|
+
self._logger.warn(message)
|
|
57
|
+
|
|
58
|
+
def error(self, message):
|
|
59
|
+
self._logger.error(message)
|
|
60
|
+
|
|
61
|
+
def set_stream_log_level(self, log_level):
|
|
62
|
+
|
|
63
|
+
for handler in logger.handlers:
|
|
64
|
+
if isinstance(handler, logging.StreamHandler) and stream_log_level is not None:
|
|
65
|
+
handler.setLevel(stream_log_level)
|
|
66
|
+
|
|
67
|
+
def set_file_log_level(self, log_level):
|
|
68
|
+
|
|
69
|
+
for handler in logger.handlers:
|
|
70
|
+
if isinstance(handler, logging.RotatingFileHandler) and stream_log_level is not None:
|
|
71
|
+
handler.setLevel(stream_log_level)
|
{julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: julien-python-toolkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Important code that I reuse through multiple projects. Please see license for allowed use.
|
|
5
5
|
Home-page: https://github.com/JulienPython/JulienPythonToolkit-V001
|
|
6
6
|
Author: Julien Python
|
|
@@ -11,7 +11,7 @@ with open('requirements.txt') as f:
|
|
|
11
11
|
|
|
12
12
|
setup(
|
|
13
13
|
name='julien-python-toolkit',
|
|
14
|
-
version='0.1.
|
|
14
|
+
version='0.1.1',
|
|
15
15
|
packages=find_packages(),
|
|
16
16
|
license='Custom Non-Commercial License', # Reference your custom license
|
|
17
17
|
install_requires=required, # Use the list from requirements.txt
|
|
File without changes
|
|
File without changes
|
{julien_python_toolkit-0.1.0 → julien_python_toolkit-0.1.1}/julien_python_toolkit/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|