import logging import panel as pn pn.extension('terminal', console_output='disable') debug = pn.widgets.Debugger(name='My Debugger') debug btn = pn.widgets.RadioButtonGroup(name='Throw error', value='no error', options=['ZeroDivision', 'no error', 'Custom error'], button_type='danger') def throw_error(event): if event == 'ZeroDivision': return pn.pane.Str(1/0) elif event == 'no error': return pn.pane.Str('Hello!') elif event == 'Custom error': raise Exception('custom error thrown') pn.Column(btn, pn.bind(throw_error, btn)) logger = logging.getLogger('panel.myapp') debug_info = pn.widgets.Debugger( name='Debugger info level', level=logging.INFO, sizing_mode='stretch_both', logger_names=['panel.myapp'], #comment this line out to get all panel errors ) btn_info = pn.widgets.RadioButtonGroup(name='show info', options=['debug', 'info', 'warning']) def throw_error(event): msg = (event + ' sent from btn_info').capitalize() if event == 'info': logger.info(msg) elif event == 'debug': logger.debug(msg) elif event == 'warning': logger.warning(msg) return msg c = pn.Column(btn_info, debug_info, pn.bind(throw_error, btn_info), sizing_mode='stretch_both') c debug_info.btns