From 3e599ae12deafee2d51d9af84bd851c1c5a5b184 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Wed, 20 Feb 2013 14:03:43 +0000 Subject: [PATCH] Incluindo opção que permite o envio de logs para o serviço do sistema quando disponível --- configure.ac | 1 + src/include/lib3270/config.h.in | 1 + src/pw3270/main.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 9afa4be..36f591b 100644 --- a/configure.ac +++ b/configure.ac @@ -165,6 +165,7 @@ AC_PATH_TOOL([RPMBUILD], [rpmbuild], [no]) AC_PATH_TOOL([DPKGBUILD], [dpkg-buildpackage], [no]) AC_CHECK_HEADER(libintl.h, AC_DEFINE(HAVE_LIBINTL)) +AC_CHECK_HEADER(syslog.h, AC_DEFINE(HAVE_SYSLOG)) AC_CHECK_LIB(intl, gettext,[INTL_LIBS="-lintl"]) AC_SUBST(INTL_LIBS) diff --git a/src/include/lib3270/config.h.in b/src/include/lib3270/config.h.in index c4e7674..94fe822 100644 --- a/src/include/lib3270/config.h.in +++ b/src/include/lib3270/config.h.in @@ -42,6 +42,7 @@ #undef HAVE_LIBM #undef HAVE_LIBINTL #undef HAVE_GETADDRINFO + #undef HAVE_SYSLOG #ifdef WIN32 #undef HAVE_WIN_REGISTRY diff --git a/src/pw3270/main.c b/src/pw3270/main.c index 188dc82..6c06cb6 100644 --- a/src/pw3270/main.c +++ b/src/pw3270/main.c @@ -42,6 +42,10 @@ #include "v3270/accessible.h" #include +#if defined( HAVE_SYSLOG ) + #include +#endif // HAVE_SYSLOG + #define ERROR_DOMAIN g_quark_from_static_string(PACKAGE_NAME) /*--[ Statics ]--------------------------------------------------------------------------------------*/ @@ -55,9 +59,15 @@ #endif // HAVE_GTKMAC #if defined( WIN32 ) - static const gchar * appname = PACKAGE_NAME; + static const gchar * appname = PACKAGE_NAME; #endif // WIN32 +#if defined( HAVE_SYSLOG ) + static gboolean log_to_syslog = FALSE; +#endif // HAVE_SYSLOG + + + /*--[ Implement ]------------------------------------------------------------------------------------*/ static int initialize(void) @@ -182,6 +192,52 @@ static gboolean optcolors(const gchar *option_name, const gchar *value, gpointer return FALSE; } +#if defined( HAVE_SYSLOG ) +static void g_syslog(const gchar *log_domain,GLogLevelFlags log_level,const gchar *message,gpointer user_data) +{ + static const struct _logtype + { + GLogLevelFlags log_level; + int priority; + const gchar * msg; + } logtype[] = + { + { G_LOG_FLAG_RECURSION, LOG_INFO, "recursion" }, + { G_LOG_FLAG_FATAL, LOG_ERR, "fatal error" }, + + /* GLib log levels */ + { G_LOG_LEVEL_ERROR, LOG_ERR, "error" }, + { G_LOG_LEVEL_CRITICAL, LOG_ERR, "critical error" }, + { G_LOG_LEVEL_WARNING, LOG_ERR, "warning" }, + { G_LOG_LEVEL_MESSAGE, LOG_ERR, "message" }, + { G_LOG_LEVEL_INFO, LOG_INFO, "info" }, + { G_LOG_LEVEL_DEBUG, LOG_DEBUG, "debug" }, + }; + + int f; + + for(f=0;f