[loggers]
# List of loggers:
# - root logger has to be present
# - section name is "logger_" + name specified in the keys below. The logger
#   name is derived automatically in the files-to-be-logged from their
#  __name__ attribute (i.e. the file name without suffix)
# When a file doesn't exist (e.g. no_existo.py)
#
keys=root, pyfdax, pyfda_class, filter_factory, filterbroker,
     pyfda_lib, pyfda_sig_lib, pyfda_fix_lib, pyfda_qt_lib, pyfda_io_lib,
     pyfda_fft_windows_lib, tree_builder, csv_option_box,
     amplitude_specs, freq_specs, freq_units, input_coeffs, input_coeffs_ui,
     input_fixpoint_specs, input_info, input_pz, input_pz_ui, input_specs,
     input_tab_widgets, select_filter, target_specs,
     bessel, equiripple, firwin,
     fir_df_pyfixp, fir_df_pyfixp_ui, iir_df1_pyfixp, iir_df1_pyfixp_ui,
     mpl_widget, plot_3d, plot_fft_win, plot_hf, plot_impz, plot_impz_ui,
     plot_phi, plot_pz, plot_tab_widgets, plot_tau_g,
     plot_tran_stim, plot_tran_stim_ui, tran_io, tran_io_ui,
     no_existo

[handlers]
# List of handlers
keys=consoleHandler,fileHandler,QHandler

[formatters]
# List of formatters
keys=simpleFormatter,noDateFormatter,ezFormatter

# ===================================================
[logger_root]
level=NOTSET
handlers=consoleHandler, QHandler

[logger_pyfdax]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.pyfdax
propagate=0

[logger_pyfda_class]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.pyfda_class
propagate=0

[logger_filter_factory]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.filter_factory
propagate=0

[logger_filterbroker]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.filterbroker
propagate=0

#-------------------- libs -------------------
[logger_pyfda_lib]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.pyfda_lib
propagate=0

[logger_pyfda_sig_lib]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.pyfda_sig_lib
propagate=0

[logger_pyfda_fix_lib]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.pyfda_fix_lib
propagate=0

[logger_pyfda_qt_lib]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.pyfda_qt_lib
propagate=0

[logger_pyfda_io_lib]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.pyfda_io_lib
propagate=0

[logger_pyfda_fft_windows_lib]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.pyfda_fft_windows_lib
propagate=0

[logger_tree_builder]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.tree_builder
propagate=0

[logger_csv_option_box]
level=INFO
handlers=fileHandler,consoleHandler, QHandler
qualname=pyfda.libs.csv_option_box
propagate=0

#-------------------- input_widgets -------------------
[logger_amplitude_specs]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.amplitude_specs
propagate=0

[logger_freq_specs]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.freq_specs
propagate=0

[logger_freq_units]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.freq_units
propagate=0

[logger_input_coeffs]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_coeffs
propagate=0

[logger_input_coeffs_ui]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_coeffs
propagate=0

[logger_input_fixpoint_specs]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_fixpoint_specs
propagate=0

[logger_input_info]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_info
propagate=0

[logger_input_pz]
level=WARNING
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_pz
propagate=0

[logger_input_pz_ui]
level=WARNING
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_pz_ui
propagate=0

[logger_input_specs]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_specs
propagate=0

[logger_input_tab_widgets]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.input_tab_widgets
propagate=0

[logger_select_filter]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.select_filter
propagate=0

[logger_target_specs]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.input_widgets.target_specs
propagate=0

#------------------- filter_widgets ---------------------
[logger_bessel]
level=INFO
handlers=fileHandler, consoleHandler,QHandler
qualname=pyfda.filter_widgets.bessel
propagate=0

[logger_equiripple]
level=INFO
handlers=fileHandler, consoleHandler,QHandler
qualname=pyfda.filter_widgets.equiripple
propagate=0

[logger_firwin]
level=INFO
handlers=fileHandler, consoleHandler,QHandler
qualname=pyfda.filter_widgets.firwin
propagate=0
#------------------- fixpoint_widgets ----------------
[logger_fir_df_pyfixp]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.fixpoint_widgets.fir_df.fir_df_pyfixp
propagate=0

[logger_fir_df_pyfixp_ui]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.fixpoint_widgets.fir_df.fir_df_pyfixp_ui
propagate=0

[logger_iir_df1_pyfixp]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.fixpoint_widgets.iir_df1.iir_df1_pyfixp
propagate=0

[logger_iir_df1_pyfixp_ui]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.fixpoint_widgets.iir_df1.iir_df1_pyfixp_ui
propagate=0
#-------------------- plot_widgets -------------------
[logger_mpl_widget]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.mpl_widget
propagate=0

[logger_plot_3d]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_3d
propagate=0

[logger_plot_fft_win]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.logger_plot_fft_win
propagate=0

[logger_plot_hf]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_hf
propagate=0

[logger_plot_impz]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_impz
propagate=0

[logger_plot_impz_ui]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_impz_ui
propagate=0

[logger_plot_phi]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_phi
propagate=0

[logger_plot_pz]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_pz
propagate=0

[logger_plot_tab_widgets]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_tab_widgets
propagate=0

[logger_plot_tau_g]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.plot_tau_g
propagate=0

[logger_plot_tran_stim]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.tran.plot_tran_stim
propagate=0

[logger_plot_tran_stim_ui]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.tran.plot_tran_stim_ui
propagate=0

[logger_tran_io]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.tran.tran_io
propagate=0

[logger_tran_io_ui]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.tran.tran_io_ui
propagate=0

#------ Test Case, file doesn't exist -----
[logger_no_existo]
level=INFO
handlers=fileHandler,consoleHandler,QHandler
qualname=pyfda.plot_widgets.no_existo
propagate=0
#------------------------------------------

# specify how to log to:  text console / logging file / GUI logging window
#
# For each handler, define the class (implementation), formatting (see next section)
# and the minimum logging level (defined by the higher of global and individual level,
# e.g. level=INFO prevents all DEBUG level messages).
#---- Console
[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=noDateFormatter
args=(sys.stdout,)
#---- File
[handler_fileHandler]
class=DynFileHandler # FileHandler is default
level=INFO
formatter=simpleFormatter
args=('pyfda.log', 'w', 'utf-8') # overwrites log file
#args=('pyfda.log','a', 'utf-8') # appends to log file
#---- GUI
[handler_QHandler]
class=QEditHandler
level=INFO
formatter=ezFormatter
args=()

#-------------------------------------------

[formatter_simpleFormatter]
format=[%(asctime)s.%(msecs).03d] [%(levelname)7s] [%(name)s:%(lineno)s] %(message)s
# for linebreaks simply make one!
datefmt=%Y-%m-%d %H:%M:%S

[formatter_noDateFormatter]
format=[%(levelname)7s] [%(name)s:%(lineno)s] %(message)s

[formatter_ezFormatter]
format=[%(levelname)7s][%(asctime)s.%(msecs).03d] [%(filename)s:%(lineno)d] %(message)s
datefmt=%H:%M:%S