Skip to content

Commit 208dc0e

Browse files
committed
improved logger
1 parent 1f2da7b commit 208dc0e

File tree

1 file changed

+35
-21
lines changed

1 file changed

+35
-21
lines changed

docs/source/chapters/chapter5.rst

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,27 +42,42 @@ All quantities are re-dimensionalized before getting outputed.
4242

4343
.. code-block:: python
4444
45+
import os
4546
import logging
46-
logging.basicConfig(
47-
level=logging.INFO,
48-
format='%(message)s'
49-
)
50-
51-
# Create a custom logger
52-
logger = logging.getLogger('simulation_logger')
53-
logger.setLevel(logging.INFO)
54-
# Disable propagation to prevent double logging
55-
logger.propagate = False
56-
57-
console_handler = logging.StreamHandler() # To log to the terminal
58-
file_handler = logging.FileHandler('simulation.log') # To log to a file
59-
formatter = logging.Formatter('%(message)s')
60-
console_handler.setFormatter(formatter)
61-
file_handler.setFormatter(formatter)
62-
logger.addHandler(console_handler)
63-
logger.addHandler(file_handler)
47+
48+
# Function to set up the logger
49+
def setup_logger(folder_name):
50+
# Create a custom logger
51+
logger = logging.getLogger('simulation_logger')
52+
logger.setLevel(logging.INFO)
53+
logger.propagate = False # Disable propagation to prevent double logging
54+
55+
# Clear any existing handlers if this function is called again
56+
if logger.hasHandlers():
57+
logger.handlers.clear()
58+
59+
# Create handlers for console and file
60+
console_handler = logging.StreamHandler() # To log to the terminal
61+
log_file_path = os.path.join(folder_name, 'simulation.log')
62+
file_handler = logging.FileHandler(log_file_path) # To log to a file
63+
64+
# Create formatters and add them to the handlers
65+
formatter = logging.Formatter('%(message)s')
66+
console_handler.setFormatter(formatter)
67+
file_handler.setFormatter(formatter)
68+
69+
# Add handlers to the logger
70+
logger.addHandler(console_handler)
71+
logger.addHandler(file_handler)
72+
73+
return logger
6474
6575
def log_simulation_data(code):
76+
77+
# Setup the logger with the folder name
78+
logger = setup_logger(code.data_folder)
79+
80+
# Logging the simulation data
6681
if code.thermo_period is not None:
6782
if code.step % code.thermo_period == 0:
6883
if code.step == 0:
@@ -83,9 +98,8 @@ All quantities are re-dimensionalized before getting outputed.
8398
logger.info(f"{code.step} {Epot:.2f} {code.MaxF:.2f}")
8499
elif code.thermo_outputs == "Epot-press":
85100
code.calculate_pressure()
86-
press = code.pressure \
87-
* code.reference_pressure # Atm
88-
logger.info(f"{code.step} {Epot:.2f} {press:.2f}")
101+
press = code.pressure * code.reference_pressure # Atm
102+
logger.info(f"{code.step} {Epot:.2f} {press:.2f}")
89103
90104
.. label:: end_logger_class
91105

0 commit comments

Comments
 (0)