Der glib GLogLevelFlags Enum ist definiert als:Ist es möglich, dass ein Standard-Log-Handler in glib mehrere Log-Level passieren kann?
typedef enum
{
/* log flags */
G_LOG_FLAG_RECURSION = 1 << 0,
G_LOG_FLAG_FATAL = 1 << 1,
/* GLib log levels */
G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */
G_LOG_LEVEL_CRITICAL = 1 << 3,
G_LOG_LEVEL_WARNING = 1 << 4,
G_LOG_LEVEL_MESSAGE = 1 << 5,
G_LOG_LEVEL_INFO = 1 << 6,
G_LOG_LEVEL_DEBUG = 1 << 7,
G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
} GLogLevelFlags;
Ist es möglich, dass die default handler zu erhalten, zum Beispiel (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_DEBUG) als Protokollebene? Ist dies gemäß den API-Garantien von glib klar definiert?
Ja, die reden über das Einrichten von Handlern, aber es scheint nicht sinnvoll zu sein, dass eine bestimmte Nachricht zu mehreren Kanälen gehört, würde ich nicht denken? – bdonlan
Sicher. Die Nachricht gehört nicht zu mehreren Kanälen. Der Handler akzeptiert Nachrichten, die zu einem der Kanäle gehören, für die er akzeptiert wurde. if: (message.channel & handler.accepted_channels) {// handle} – ASk