summaryrefslogtreecommitdiff
path: root/src/fe-common/core
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@irssi.org>2009-02-09 20:00:17 +0000
committerahf <ahf@dbcabf3a-b0e7-0310-adc4-f8d773084564>2009-02-09 20:00:17 +0000
commit7c025294026d252e7872df4d67f744f037a8c368 (patch)
tree2b71f93452a2f5fc07a086a236a63e1247c42fb7 /src/fe-common/core
parentf53f106dc69f1468e88f2d4cc8ae57024730523a (diff)
downloadirssi-7c025294026d252e7872df4d67f744f037a8c368.zip
Add /set autolog_ignore_targets.
Allows you to avoid specific targets from being logged via autolog. git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5006 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/fe-common/core')
-rw-r--r--src/fe-common/core/fe-log.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/fe-common/core/fe-log.c b/src/fe-common/core/fe-log.c
index dbeede7b..66bce64d 100644
--- a/src/fe-common/core/fe-log.c
+++ b/src/fe-common/core/fe-log.c
@@ -36,6 +36,7 @@
#include "formats.h"
#include "themes.h"
#include "printtext.h"
+#include "fe-common-core.h"
/* close autologs after 5 minutes of inactivity */
#define AUTOLOG_INACTIVITY_CLOSE (60*5)
@@ -50,6 +51,8 @@ static const char *log_theme_name;
static int log_dir_create_mode;
+static char **autolog_ignore_targets;
+
static char *log_colorizer_strip(const char *str)
{
return strip_codes(str);
@@ -501,6 +504,10 @@ static void log_line(TEXT_DEST_REC *dest, const char *text)
if (dest->level == MSGLEVEL_NEVER)
return;
+ if (autolog_ignore_targets != NULL && dest->target != NULL)
+ if (strarray_find_dest(autolog_ignore_targets, dest))
+ return;
+
/* let autolog open the log records */
autolog_open_check(dest->server, dest->server_tag,
dest->target, dest->level);
@@ -690,6 +697,11 @@ static void read_settings(void)
if (log_file_create_mode & 0400) log_dir_create_mode |= 0100;
if (log_file_create_mode & 0040) log_dir_create_mode |= 0010;
if (log_file_create_mode & 0004) log_dir_create_mode |= 0001;
+
+ if (autolog_ignore_targets != NULL)
+ g_strfreev(autolog_ignore_targets);
+
+ autolog_ignore_targets = g_strsplit(settings_get_str("autolog_ignore_targets"), " ", -1);
}
void fe_log_init(void)
@@ -703,6 +715,7 @@ void fe_log_init(void)
settings_add_str("log", "autolog_path", "~/irclogs/$tag/$0.log");
settings_add_level("log", "autolog_level", "all -crap -clientcrap -ctcps");
settings_add_str("log", "log_theme", "");
+ settings_add_str("log", "autolog_ignore_targets", "");
autolog_level = 0;
log_theme_name = NULL;
@@ -756,4 +769,7 @@ void fe_log_deinit(void)
signal_remove("awaylog show", (SIGNAL_FUNC) sig_awaylog_show);
signal_remove("theme destroyed", (SIGNAL_FUNC) sig_theme_destroyed);
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
+
+ if (autolog_ignore_targets != NULL)
+ g_strfreev(autolog_ignore_targets);
}