quill
Public Attributes | List of all members
SignalHandlerOptions Struct Reference

Struct to hold options for the signal handler. More...

#include <SignalHandler.h>

Public Attributes

std::vector< int > catchable_signals {SIGTERM, SIGINT, SIGABRT, SIGFPE, SIGILL, SIGSEGV}
 List of signals that the backend should catch if with_signal_handler is enabled. More...
 
uint32_t timeout_seconds = 20u
 Defines the timeout duration in seconds for the signal handler alarm. More...
 
std::string logger_name
 The name of the logger instance that the signal handler will use to log errors when the application crashes. More...
 
std::vector< std::string > excluded_logger_substrings {"__csv__"}
 List of substrings used to exclude loggers during automatic logger selection. More...
 

Detailed Description

Struct to hold options for the signal handler.

Member Data Documentation

◆ catchable_signals

std::vector<int> SignalHandlerOptions::catchable_signals {SIGTERM, SIGINT, SIGABRT, SIGFPE, SIGILL, SIGSEGV}

List of signals that the backend should catch if with_signal_handler is enabled.

Enabling the built-in signal handler overrides the process handlers for these signals.

◆ excluded_logger_substrings

std::vector<std::string> SignalHandlerOptions::excluded_logger_substrings {"__csv__"}

List of substrings used to exclude loggers during automatic logger selection.

This option is only used when logger_name is empty or when the specified logger is not found. The signal handler will skip any logger whose name contains any of these substrings. This is useful to avoid selecting specialized loggers that write to CSV files, binary files, or other non-standard formats that may not be suitable for crash reporting. Default: {"__csv__"} to exclude CSV loggers.

◆ logger_name

std::string SignalHandlerOptions::logger_name

The name of the logger instance that the signal handler will use to log errors when the application crashes.

The logger is accessed by the signal handler and must be created by your application using Frontend::create_or_get_logger(...). If this parameter is left empty, the signal handler will automatically select the first valid logger it finds, excluding any loggers whose names contain substrings specified in excluded_logger_substrings. If a logger name is specified but not found, the signal handler will fall back to the automatic selection behavior described above.

◆ timeout_seconds

uint32_t SignalHandlerOptions::timeout_seconds = 20u

Defines the timeout duration in seconds for the signal handler alarm.

It is only available on Linux, as Windows does not support the alarm function. The signal handler sets up an alarm to ensure that the process will terminate if it does not complete within the specified time frame. This is particularly useful to prevent the process from hanging indefinitely in case the signal handler encounters an issue.


The documentation for this struct was generated from the following file: