void test_001(gpointer *fixture, gconstpointer data) { GType type = g_type_from_name("Log4gSimpleLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, NULL); g_assert(layout); log4g_layout_activate_options(layout); type = g_type_from_name("Log4gSyslogAppender"); g_assert(type); Log4gAppender *appender = g_object_new(type, "ident", "syslog-appender-test", "option", LOG_USER, "facility", LOG_CONS, NULL); g_assert(appender); log4g_appender_set_layout(appender, layout); log4g_appender_activate_options(appender); g_object_unref(layout); for (gint i = 0; i < 5; ++i) { log4g_ndc_push("LOOP %d", i); va_list ap; memset(&ap, 0, sizeof ap); Log4gLoggingEvent *event = log4g_logging_event_new( "org.gnome.test", log4g_level_INFO(), __func__, __FILE__, G_STRINGIFY(__LINE__), "test message", ap); g_assert(event); log4g_appender_do_append(appender, event); g_object_unref(event); usleep(20); } g_object_unref(appender); }
void test_001(G_GNUC_UNUSED gpointer *fixture, G_GNUC_UNUSED gconstpointer data) { GType type = g_type_from_name("Log4gSimpleLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, NULL); g_assert(layout); log4g_layout_activate_options(layout); va_list ap; memset(&ap, 0, sizeof ap); Log4gLoggingEvent *event = log4g_logging_event_new("org.gnome.test", log4g_level_DEBUG(), __func__, __FILE__, G_STRINGIFY(__LINE__), "test message", ap); g_assert(event); type = g_type_from_name("Log4gConsoleAppender"); g_assert(type); Log4gAppender *appender = g_object_new(type, "target", "stdout", NULL); g_assert(appender); log4g_appender_set_layout(appender, layout); log4g_appender_activate_options(appender); g_object_unref(layout); log4g_appender_do_append(appender, event); log4g_appender_close(appender); g_object_unref(event); g_object_unref(appender); }
void test_001(gpointer *fixture, gconstpointer data) { GType type = g_type_from_name("Log4gTTCCLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, NULL); g_assert(layout); log4g_layout_activate_options(layout); type = g_type_from_name("Log4gRollingFileAppender"); g_assert(type); Log4gAppender *appender = g_object_new(type, "file", "rolling-file-appender-test.txt", "max-backup-index", 4, "maximum-file-size", 10, NULL); g_assert(appender); log4g_appender_set_layout(appender, layout); log4g_appender_activate_options(appender); g_object_unref(layout); for (gint i = 0; i < 10; ++i) { va_list ap; memset(&ap, 0, sizeof ap); Log4gLoggingEvent *event = log4g_logging_event_new( "org.gnome.test", log4g_level_DEBUG(), __func__, __FILE__, G_STRINGIFY(__LINE__), "test message", ap); g_assert(event); log4g_appender_do_append(appender, event); g_object_unref(event); usleep(20); } g_object_unref(appender); }
void test_001(Fixture *fixture, G_GNUC_UNUSED gconstpointer data) { GType type = g_type_from_name("Log4gSimpleLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, NULL); g_assert(layout); log4g_layout_activate_options(layout); g_message("%s", log4g_layout_format(layout, fixture->event)); g_object_unref(layout); }
void test_001(Fixture *fixture, gconstpointer data) { GType type = g_type_from_name("Log4gXMLLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, "properties", TRUE, "location-info", TRUE, NULL); g_assert(layout); log4g_layout_activate_options(layout); g_message("%s", log4g_layout_format(layout, fixture->event)); g_object_unref(layout); }
static Log4gLayout * parse_layout(Log4gConfigurator *base, xmlNodePtr node) { Log4gLayout *layout = NULL; xmlChar *type = xmlGetProp(node, (const xmlChar *)"type"); if (!type) { log4g_log_error(Q_("layouts must have a `type'")); goto exit; } GType gtype = g_type_from_name((const gchar *)type); if (!gtype) { log4g_log_error(Q_("%s: invalid `type'"), type); goto exit; } if (!G_TYPE_IS_INSTANTIATABLE(gtype)) { log4g_log_error(Q_("%s: is a non-instantiable type"), type); goto exit; } layout = g_object_new(gtype, NULL); if (!layout) { log4g_log_error(Q_("%s: g_object_new() returned NULL"), type); goto exit; } if (!LOG4G_IS_LAYOUT(layout)) { log4g_log_error(Q_("%s: not an instance of Log4gLayout"), type); g_object_unref(layout); layout = NULL; goto exit; } node = node->xmlChildrenNode; while (node) { if (!xmlStrcmp(node->name, (const xmlChar *)"property")) { parse_property(base, node, layout); } else if (!xmlStrcmp(node->name, (const xmlChar *)"text")) { log4g_log_warn(Q_("invalid text element")); } else if (!xmlStrcmp(node->name, (const xmlChar *)"comment")) { /* do nothing */ } else { log4g_log_warn(Q_("%s: invalid element"), node->name); } node = node->next; } log4g_layout_activate_options(layout); exit: if (type) { xmlFree(type); } return layout; }
void test_001(Fixture *fixture, gconstpointer data) { GType type = g_type_from_name("Log4gPatternLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, "conversion-pattern", "[%d{%c}] [%t] [%.7c{2}] %M(%F:%L) " "[%.5m] [%20p] [%r] [%X{foo}] [%x] %m%n", NULL); g_assert(layout); log4g_layout_activate_options(layout); g_message("%s", log4g_layout_format(layout, fixture->event)); g_object_unref(layout); }
/** * log4g_basic_configurator_configure: * * Quickly configure Log4g. * * This function adds a console appender to the root logger that uses the * TTCC layout and prints to stdout. * * See: #Log4gRootLogger, #Log4gTTCCLayout * * Since: 0.1 */ void log4g_basic_configurator_configure(void) { Log4gLayout *layout = NULL; Log4gAppender *appender = NULL; Log4gLogger *root = log4g_logger_get_root_logger(); if (!root) { log4g_log_error(Q_("log4g_logger_get_root_logger() " "returned NULL")); return; } GType type = g_type_from_name("Log4gTTCCLayout"); if (!type) { log4g_log_warn(Q_("Log4gTTCCLayout: type not found")); return; } layout = g_object_new(type, NULL); if (!layout) { log4g_log_error(Q_("g_object_new() returned NULL")); return; } log4g_layout_activate_options(layout); type = g_type_from_name("Log4gConsoleAppender"); if (!type) { log4g_log_warn(Q_("Log4gTTCCLayout: type not found")); goto exit; } appender = g_object_new(type, NULL); if (!layout) { log4g_log_error(Q_("g_object_new() returned NULL")); goto exit; } log4g_appender_set_layout(appender, layout); log4g_appender_activate_options(appender); log4g_logger_add_appender(root, appender); exit: if (layout) { g_object_unref(layout); } if (appender) { g_object_unref(appender); } }
void test_001(G_GNUC_UNUSED gpointer *fixture, G_GNUC_UNUSED gconstpointer data) { GType type = g_type_from_name("Log4gHTMLLayout"); g_assert(type); Log4gLayout *layout = g_object_new(type, "title", "Hello, World!", "location-info", TRUE, NULL); g_assert(layout); log4g_layout_activate_options(layout); type = g_type_from_name("Log4gFileAppender"); g_assert(type); Log4gAppender *appender = g_object_new(type, "file", "tests/file-appender-test.html", "append", FALSE, "buffered-io", TRUE, NULL); g_assert(appender); log4g_appender_set_layout(appender, layout); log4g_appender_activate_options(appender); g_object_unref(layout); va_list ap; memset(&ap, 0, sizeof ap); for (gint i = 0; i < 5; ++i) { log4g_ndc_push("LOOP %d", i); Log4gLoggingEvent *event = log4g_logging_event_new( "org.gnome.test", log4g_level_DEBUG(), __func__, __FILE__, G_STRINGIFY(__LINE__), "test message", ap); g_assert(event); log4g_appender_do_append(appender, event); g_object_unref(event); usleep(20); } g_object_unref(appender); }