Skip to content

Commit a495bb1

Browse files
authored
Merge pull request #257 from Loop3D/fix/stratigraphic-column
fix: add new stratigraphic column implementation
2 parents 66a6f1d + 58cb00f commit a495bb1

3 files changed

Lines changed: 590 additions & 104 deletions

File tree

LoopStructural/__init__.py

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
ch.setLevel(logging.WARNING)
2020
loggers = {}
2121
from .modelling.core.geological_model import GeologicalModel
22+
from .modelling.core.stratigraphic_column import StratigraphicColumn
2223
from .interpolators._api import LoopInterpolator
2324
from .interpolators import InterpolatorBuilder
2425
from .datatypes import BoundingBox
@@ -28,26 +29,43 @@
2829
logger.info("Imported LoopStructural")
2930

3031

31-
def setLogging(level="info"):
32+
def setLogging(level="info", handler=None):
3233
"""
33-
Set the logging parameters for log file
34+
Set the logging parameters for log file or custom handler
3435
3536
Parameters
3637
----------
37-
filename : string
38-
name of file or path to file
39-
level : str, optional
40-
'info', 'warning', 'error', 'debug' mapped to logging levels, by default 'info'
38+
level : str
39+
'info', 'warning', 'error', 'debug'
40+
handler : logging.Handler, optional
41+
A logging handler to use instead of the default StreamHandler
4142
"""
4243
import LoopStructural
4344

44-
logger = getLogger(__name__)
45-
4645
levels = get_levels()
47-
level = levels.get(level, logging.WARNING)
48-
LoopStructural.ch.setLevel(level)
46+
level_value = levels.get(level, logging.WARNING)
47+
48+
# Create default handler if none provided
49+
if handler is None:
50+
handler = logging.StreamHandler()
51+
52+
formatter = logging.Formatter(
53+
"%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d -- %(message)s"
54+
)
55+
handler.setFormatter(formatter)
56+
handler.setLevel(level_value)
4957

58+
# Replace handlers in all known loggers
5059
for name in LoopStructural.loggers:
5160
logger = logging.getLogger(name)
52-
logger.setLevel(level)
53-
logger.info(f'Set logging to {level}')
61+
logger.handlers = []
62+
logger.addHandler(handler)
63+
logger.setLevel(level_value)
64+
65+
# Also apply to main module logger
66+
main_logger = logging.getLogger(__name__)
67+
main_logger.handlers = []
68+
main_logger.addHandler(handler)
69+
main_logger.setLevel(level_value)
70+
71+
main_logger.info(f"Set logging to {level}")

0 commit comments

Comments
 (0)