Skip to content
Snippets Groups Projects
Commit 3d8986ca authored by Felipe Delestro Matos's avatar Felipe Delestro Matos
Browse files

changing log import method

parent 268fb543
Branches
Tags
No related merge requests found
%% Cell type:markdown id:ae2a75fe tags:
# Logging system for qim3d
Using proper logging instead of print statements is a recommended practice.
While print statements can be helpful for quick debugging, logging provides a more powerful and versatile approach. Logging allows for better control over output, with options to configure log levels, filter messages, and redirect output to different destinations.
%% Cell type:code id:a31b2245 tags:
``` python
import qim3d
from qim3d.io.logger import log
```
%% Cell type:code id:94022824 tags:
``` python
# Here we test by sending one message for each level
# Note that DEBUG and INFO do not appear
log.debug('debug level message')
log.info('info level message')
log.warning('warning level message')
log.error('error level message')
log.critical('critical level message')
```
%% Output
warning level message
error level message
critical level message
%% Cell type:code id:b0856333 tags:
``` python
# Change the level to debug
qim3d.io.logger.set_level_DEBUG()
# Now all the levels get logged
log.debug('debug level message')
log.info('info level message')
log.warning('warning level message')
log.error('error level message')
log.critical('critical level message')
```
%% Output
debug level message
info level message
warning level message
error level message
critical level message
%% Cell type:code id:eb542404 tags:
``` python
# Change the level to error
qim3d.io.logger.set_level_ERROR()
# And now only above ERROR is shown
log.debug('debug level message')
log.info('info level message')
log.warning('warning level message')
log.error('error level message')
log.critical('critical level message')
```
%% Output
error level message
critical level message
%% Cell type:code id:af3cc812 tags:
``` python
# We can increase the level of detail
qim3d.io.logger.set_detailed_output()
# Note that DEBUG and INFO are still not shown
log.debug('debug level message')
log.info('info level message')
log.warning('warning level message')
log.error('error level message')
log.critical('critical level message')
```
%% Output
ERROR 3224913348.py:8 error level message
CRITICAL 3224913348.py:9 critical level message
%% Cell type:code id:d7239b1b tags:
``` python
# We can switch back to the simple output mode
qim3d.io.logger.set_simple_output()
# Now we see all the levels on simple mode
log.debug('debug level message')
log.info('info level message')
log.warning('warning level message')
log.error('error level message')
log.critical('critical level message')
```
%% Output
error level message
critical level message
%% Cell type:code id:eaceb5b6 tags:
``` python
# Change back to detailed and DEBUG level
qim3d.io.logger.set_detailed_output()
qim3d.io.logger.set_level_DEBUG()
log.debug('debug level message')
log.info('info level message')
log.warning('warning level message')
log.error('error level message')
log.critical('critical level message')
```
%% Output
DEBUG 4221232047.py:5 debug level message
INFO 4221232047.py:6 info level message
WARNING 4221232047.py:7 warning level message
ERROR 4221232047.py:8 error level message
CRITICAL 4221232047.py:9 critical level message
%% Cell type:markdown id:ae2a75fe tags: %% Cell type:markdown id:ae2a75fe tags:
# Logging system for qim3d # Logging system for qim3d
Using proper logging instead of print statements is a recommended practice. Using proper logging instead of print statements is a recommended practice.
While print statements can be helpful for quick debugging, logging provides a more powerful and versatile approach. Logging allows for better control over output, with options to configure log levels, filter messages, and redirect output to different destinations. While print statements can be helpful for quick debugging, logging provides a more powerful and versatile approach. Logging allows for better control over output, with options to configure log levels, filter messages, and redirect output to different destinations.
%% Cell type:code id:a31b2245 tags: %% Cell type:code id:a31b2245 tags:
``` python ``` python
import qim3d import qim3d
from qim3d import log from qim3d.io.logger import log
``` ```
%% Cell type:code id:94022824 tags: %% Cell type:code id:94022824 tags:
``` python ``` python
# Here we test by sending one message for each level # Here we test by sending one message for each level
# Note that DEBUG and INFO do not appear # Note that DEBUG and INFO do not appear
log.debug('debug level message') log.debug('debug level message')
log.info('info level message') log.info('info level message')
log.warning('warning level message') log.warning('warning level message')
log.error('error level message') log.error('error level message')
log.critical('critical level message') log.critical('critical level message')
``` ```
%% Output %% Output
warning level message warning level message
error level message error level message
critical level message critical level message
%% Cell type:code id:b0856333 tags: %% Cell type:code id:b0856333 tags:
``` python ``` python
# Change the level to debug # Change the level to debug
qim3d.io.logger.set_level_DEBUG() qim3d.io.logger.set_level_DEBUG()
# Now all the levels get logged # Now all the levels get logged
log.debug('debug level message') log.debug('debug level message')
log.info('info level message') log.info('info level message')
log.warning('warning level message') log.warning('warning level message')
log.error('error level message') log.error('error level message')
log.critical('critical level message') log.critical('critical level message')
``` ```
%% Output %% Output
debug level message debug level message
info level message info level message
warning level message warning level message
error level message error level message
critical level message critical level message
%% Cell type:code id:eb542404 tags: %% Cell type:code id:eb542404 tags:
``` python ``` python
# Change the level to error # Change the level to error
qim3d.io.logger.set_level_ERROR() qim3d.io.logger.set_level_ERROR()
# And now only above ERROR is shown # And now only above ERROR is shown
log.debug('debug level message') log.debug('debug level message')
log.info('info level message') log.info('info level message')
log.warning('warning level message') log.warning('warning level message')
log.error('error level message') log.error('error level message')
log.critical('critical level message') log.critical('critical level message')
``` ```
%% Output %% Output
error level message error level message
critical level message critical level message
%% Cell type:code id:af3cc812 tags: %% Cell type:code id:af3cc812 tags:
``` python ``` python
# We can increase the level of detail # We can increase the level of detail
qim3d.io.logger.set_detailed_output() qim3d.io.logger.set_detailed_output()
# Note that DEBUG and INFO are still not shown # Note that DEBUG and INFO are still not shown
log.debug('debug level message') log.debug('debug level message')
log.info('info level message') log.info('info level message')
log.warning('warning level message') log.warning('warning level message')
log.error('error level message') log.error('error level message')
log.critical('critical level message') log.critical('critical level message')
``` ```
%% Output %% Output
ERROR 3224913348.py:8 error level message ERROR 3224913348.py:8 error level message
CRITICAL 3224913348.py:9 critical level message CRITICAL 3224913348.py:9 critical level message
%% Cell type:code id:d7239b1b tags: %% Cell type:code id:d7239b1b tags:
``` python ``` python
# We can switch back to the simple output mode # We can switch back to the simple output mode
qim3d.io.logger.set_simple_output() qim3d.io.logger.set_simple_output()
# Now we see all the levels on simple mode # Now we see all the levels on simple mode
log.debug('debug level message') log.debug('debug level message')
log.info('info level message') log.info('info level message')
log.warning('warning level message') log.warning('warning level message')
log.error('error level message') log.error('error level message')
log.critical('critical level message') log.critical('critical level message')
``` ```
%% Output %% Output
error level message error level message
critical level message critical level message
%% Cell type:code id:eaceb5b6 tags: %% Cell type:code id:eaceb5b6 tags:
``` python ``` python
# Change back to detailed and DEBUG level # Change back to detailed and DEBUG level
qim3d.io.logger.set_detailed_output() qim3d.io.logger.set_detailed_output()
qim3d.io.logger.set_level_DEBUG() qim3d.io.logger.set_level_DEBUG()
log.debug('debug level message') log.debug('debug level message')
log.info('info level message') log.info('info level message')
log.warning('warning level message') log.warning('warning level message')
log.error('error level message') log.error('error level message')
log.critical('critical level message') log.critical('critical level message')
``` ```
%% Output %% Output
DEBUG 4221232047.py:5 debug level message DEBUG 4221232047.py:5 debug level message
INFO 4221232047.py:6 info level message INFO 4221232047.py:6 info level message
WARNING 4221232047.py:7 warning level message WARNING 4221232047.py:7 warning level message
ERROR 4221232047.py:8 error level message ERROR 4221232047.py:8 error level message
CRITICAL 4221232047.py:9 critical level message CRITICAL 4221232047.py:9 critical level message
......
...@@ -3,8 +3,3 @@ import qim3d.gui ...@@ -3,8 +3,3 @@ import qim3d.gui
import qim3d.tools import qim3d.tools
import logging import logging
# create the logger
log = logging.getLogger(__name__)
qim3d.io.logger.set_simple_output()
qim3d.io.logger.set_level_WARNING()
\ No newline at end of file
...@@ -3,7 +3,7 @@ import numpy as np ...@@ -3,7 +3,7 @@ import numpy as np
import os import os
from qim3d.tools import internal_tools from qim3d.tools import internal_tools
from qim3d.io import DataLoader from qim3d.io import DataLoader
from qim3d import log from qim3d.io.logger import log
import tifffile import tifffile
import outputformat as ouf import outputformat as ouf
import datetime import datetime
......
...@@ -3,7 +3,7 @@ import numpy as np ...@@ -3,7 +3,7 @@ import numpy as np
import os import os
from qim3d.tools import internal_tools from qim3d.tools import internal_tools
from qim3d.io import DataLoader from qim3d.io import DataLoader
from qim3d import log from qim3d.io.logger import log
import plotly.graph_objects as go import plotly.graph_objects as go
from scipy import ndimage from scipy import ndimage
......
...@@ -3,7 +3,7 @@ import numpy as np ...@@ -3,7 +3,7 @@ import numpy as np
import os import os
from qim3d.tools import internal_tools from qim3d.tools import internal_tools
from qim3d.io import DataLoader from qim3d.io import DataLoader
from qim3d import log from qim3d.io.logger import log
import tifffile import tifffile
import plotly.express as px import plotly.express as px
from scipy import ndimage from scipy import ndimage
......
...@@ -6,13 +6,13 @@ import difflib ...@@ -6,13 +6,13 @@ import difflib
class DataLoader: class DataLoader:
def __init__(self, **kwargs): def __init__(self, **kwargs):
self.verbose = False
# Virtual stack is False by default # Virtual stack is False by default
self.virtual_stack = kwargs.get("virtual_stack", False) self.virtual_stack = kwargs.get("virtual_stack", False)
def load_tiff(self, path): def load_tiff(self, path):
if self.virtual_stack: if self.virtual_stack:
log.info("Using virtual stack")
vol = tifffile.memmap(path) vol = tifffile.memmap(path)
else: else:
vol = tifffile.imread(path) vol = tifffile.imread(path)
......
...@@ -39,3 +39,10 @@ def set_level_ERROR(): ...@@ -39,3 +39,10 @@ def set_level_ERROR():
def set_level_CRITICAL(): def set_level_CRITICAL():
logging.getLogger("qim3d").setLevel(logging.CRITICAL) logging.getLogger("qim3d").setLevel(logging.CRITICAL)
# create the logger
log = logging.getLogger("qim3d")
set_simple_output()
set_level_WARNING()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment