mirror of
https://github.com/weechat/weechat.git
synced 2026-07-08 20:25:42 +02:00
Add signal "day_changed", allow date format in logger options path and mask (task #9430)
This commit is contained in:
@@ -89,6 +89,7 @@ logger_buffer_add (struct t_gui_buffer *buffer, int log_level)
|
||||
new_logger_buffer->log_file = NULL;
|
||||
new_logger_buffer->log_enabled = 1;
|
||||
new_logger_buffer->log_level = log_level;
|
||||
new_logger_buffer->write_start_info_line = 1;
|
||||
|
||||
new_logger_buffer->prev_buffer = last_logger_buffer;
|
||||
new_logger_buffer->next_buffer = NULL;
|
||||
@@ -156,14 +157,9 @@ void
|
||||
logger_buffer_free (struct t_logger_buffer *logger_buffer)
|
||||
{
|
||||
struct t_logger_buffer *new_logger_buffers;
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
|
||||
if (weechat_logger_plugin->debug)
|
||||
{
|
||||
weechat_printf (NULL,
|
||||
"%s: stop logging for buffer \"%s\"",
|
||||
LOGGER_PLUGIN_NAME,
|
||||
weechat_buffer_get_string (logger_buffer->buffer, "name"));
|
||||
}
|
||||
ptr_buffer = logger_buffer->buffer;
|
||||
|
||||
/* remove logger buffer */
|
||||
if (last_logger_buffer == logger_buffer)
|
||||
@@ -182,10 +178,20 @@ logger_buffer_free (struct t_logger_buffer *logger_buffer)
|
||||
/* free data */
|
||||
if (logger_buffer->log_filename)
|
||||
free (logger_buffer->log_filename);
|
||||
if (logger_buffer->log_file)
|
||||
fclose (logger_buffer->log_file);
|
||||
|
||||
free (logger_buffer);
|
||||
|
||||
logger_buffers = new_logger_buffers;
|
||||
|
||||
if (weechat_logger_plugin->debug)
|
||||
{
|
||||
weechat_printf (NULL,
|
||||
"%s: stop logging for buffer \"%s\"",
|
||||
LOGGER_PLUGIN_NAME,
|
||||
weechat_buffer_get_string (ptr_buffer, "name"));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -216,6 +222,8 @@ logger_buffer_add_to_infolist (struct t_infolist *infolist,
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "log_level", logger_buffer->log_level))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "write_start_info_line", logger_buffer->write_start_info_line))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ struct t_logger_buffer
|
||||
FILE *log_file; /* log file */
|
||||
int log_enabled; /* log enabled ? */
|
||||
int log_level; /* log level (0..9) */
|
||||
int write_start_info_line; /* 1 if start info line must be */
|
||||
/* written in file */
|
||||
struct t_logger_buffer *prev_buffer; /* link to previous buffer */
|
||||
struct t_logger_buffer *next_buffer; /* link to next buffer */
|
||||
};
|
||||
|
||||
@@ -63,10 +63,7 @@ logger_config_change_file_option_restart_log (void *data,
|
||||
(void) option;
|
||||
|
||||
if (!logger_config_loading)
|
||||
{
|
||||
logger_stop_all ();
|
||||
logger_start_buffer_all ();
|
||||
}
|
||||
logger_adjust_log_filenames ();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -80,9 +77,9 @@ logger_config_level_change (void *data,
|
||||
/* make C compiler happy */
|
||||
(void) data;
|
||||
(void) option;
|
||||
|
||||
|
||||
if (!logger_config_loading)
|
||||
logger_start_buffer_all ();
|
||||
logger_start_buffer_all (1);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -102,7 +99,7 @@ logger_config_level_delete_option (void *data,
|
||||
|
||||
weechat_config_option_free (option);
|
||||
|
||||
logger_start_buffer_all ();
|
||||
logger_start_buffer_all (1);
|
||||
|
||||
return WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED;
|
||||
}
|
||||
@@ -161,7 +158,7 @@ logger_config_level_create_option (void *data,
|
||||
}
|
||||
|
||||
if (!logger_config_loading)
|
||||
logger_start_buffer_all ();
|
||||
logger_start_buffer_all (1);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@@ -205,10 +202,7 @@ logger_config_mask_change (void *data,
|
||||
(void) option;
|
||||
|
||||
if (!logger_config_loading)
|
||||
{
|
||||
logger_stop_all ();
|
||||
logger_start_buffer_all ();
|
||||
}
|
||||
logger_adjust_log_filenames ();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -228,8 +222,7 @@ logger_config_mask_delete_option (void *data,
|
||||
|
||||
weechat_config_option_free (option);
|
||||
|
||||
logger_stop_all ();
|
||||
logger_start_buffer_all ();
|
||||
logger_adjust_log_filenames ();
|
||||
|
||||
return WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED;
|
||||
}
|
||||
@@ -286,12 +279,9 @@ logger_config_mask_create_option (void *data,
|
||||
rc = WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!logger_config_loading)
|
||||
{
|
||||
logger_stop_all ();
|
||||
logger_start_buffer_all ();
|
||||
}
|
||||
logger_adjust_log_filenames ();
|
||||
|
||||
return rc;
|
||||
}
|
||||
@@ -369,8 +359,9 @@ logger_config_init ()
|
||||
logger_config_file_path = weechat_config_new_option (
|
||||
logger_config_file, ptr_section,
|
||||
"path", "string",
|
||||
N_("path for WeeChat log files (\"%h\" will be replaced by WeeChat "
|
||||
"home, \"~/.weechat\" by default)"),
|
||||
N_("path for WeeChat log files; \"%h\" at beginning of string is "
|
||||
"replaced by WeeChat home (\"~/.weechat\" by default); date "
|
||||
"specifiers are permitted (see man strftime)"),
|
||||
NULL, 0, 0, "%h/logs/", NULL, 0, NULL, NULL,
|
||||
&logger_config_change_file_option_restart_log, NULL, NULL, NULL);
|
||||
logger_config_file_mask = weechat_config_new_option (
|
||||
@@ -379,7 +370,8 @@ logger_config_init ()
|
||||
N_("default file name mask for log files (format is "
|
||||
"\"directory/to/file\" or \"file\", without first \"/\" because "
|
||||
"\"path\" option is used to build complete path to file); local "
|
||||
"buffer variables are permitted"),
|
||||
"buffer variables are permitted; date specifiers are permitted "
|
||||
"(see man strftime)"),
|
||||
NULL, 0, 0, "$plugin.$name.weechatlog", NULL, 0, NULL, NULL,
|
||||
&logger_config_change_file_option_restart_log, NULL, NULL, NULL);
|
||||
logger_config_file_replacement_char = weechat_config_new_option (
|
||||
|
||||
+271
-85
File diff suppressed because it is too large
Load Diff
@@ -28,7 +28,8 @@
|
||||
|
||||
extern struct t_weechat_plugin *weechat_logger_plugin;
|
||||
|
||||
extern void logger_start_buffer_all ();
|
||||
extern void logger_stop_all ();
|
||||
extern void logger_start_buffer_all (int write_info_line);
|
||||
extern void logger_stop_all (int write_info_line);
|
||||
extern void logger_adjust_log_filenames ();
|
||||
|
||||
#endif /* logger.h */
|
||||
|
||||
Reference in New Issue
Block a user