summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2015-10-28 16:22:31 +1300
committerRobert Ancell <robert.ancell@canonical.com>2015-10-28 16:22:31 +1300
commit0a2e5336c54359c6e94ba22a016be4dd363b6346 (patch)
tree29e11f4662ad0e5e798ba2499fe9bba2d1de90c6
parent9760535ab1bbc8d69d3ca372f58b4776afae167c (diff)
downloadlightdm-0a2e5336c54359c6e94ba22a016be4dd363b6346.tar.gz
Add a backup-logs option to re-enable the old log backup mode
-rw-r--r--data/lightdm.conf2
-rw-r--r--src/seat.c4
-rw-r--r--src/unity-system-compositor.c5
-rw-r--r--src/x-server-local.c5
-rw-r--r--src/x-server-xvnc.c5
5 files changed, 14 insertions, 7 deletions
diff --git a/data/lightdm.conf b/data/lightdm.conf
index 8284081b..e55ac175 100644
--- a/data/lightdm.conf
+++ b/data/lightdm.conf
@@ -15,6 +15,7 @@
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
+# backup-logs = True to move add a .old suffix to old log files when opening new ones
#
[LightDM]
#start-default-seat=true
@@ -31,6 +32,7 @@
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=/usr/share/lightdm/greeters:/usr/share/xgreeters
+#backup-logs=false
#
# Seat configuration
diff --git a/src/seat.c b/src/seat.c
index 6d0a6ced..fa9699bc 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -608,13 +608,15 @@ start_session (Seat *seat, Session *session)
if (IS_GREETER (session))
{
gchar *log_dir, *filename, *log_filename;
+ gboolean backup_logs;
log_dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
filename = g_strdup_printf ("%s-greeter.log", display_server_get_name (session_get_display_server (session)));
log_filename = g_build_filename (log_dir, filename, NULL);
g_free (log_dir);
g_free (filename);
- session_set_log_file (session, log_filename, LOG_MODE_APPEND);
+ backup_logs = config_get_boolean (config_get_instance (), "LightDM", "backup-logs");
+ session_set_log_file (session, log_filename, backup_logs ? LOG_MODE_BACKUP_AND_TRUNCATE : LOG_MODE_APPEND);
g_free (log_filename);
}
diff --git a/src/unity-system-compositor.c b/src/unity-system-compositor.c
index 203f2aeb..069e11a8 100644
--- a/src/unity-system-compositor.c
+++ b/src/unity-system-compositor.c
@@ -374,7 +374,7 @@ static gboolean
unity_system_compositor_start (DisplayServer *server)
{
UnitySystemCompositor *compositor = UNITY_SYSTEM_COMPOSITOR (server);
- gboolean result;
+ gboolean result, backup_logs;
GString *command;
gchar *dir, *log_file, *absolute_command, *value;
@@ -407,7 +407,8 @@ unity_system_compositor_start (DisplayServer *server)
/* Setup environment */
compositor->priv->process = process_new (run_cb, compositor);
- process_set_log_file (compositor->priv->process, log_file, TRUE, LOG_MODE_APPEND);
+ backup_logs = config_get_boolean (config_get_instance (), "LightDM", "backup-logs");
+ process_set_log_file (compositor->priv->process, log_file, TRUE, backup_logs ? LOG_MODE_BACKUP_AND_TRUNCATE : LOG_MODE_APPEND);
g_free (log_file);
process_set_clear_environment (compositor->priv->process, TRUE);
process_set_env (compositor->priv->process, "XDG_SEAT", "seat0");
diff --git a/src/x-server-local.c b/src/x-server-local.c
index 384c76c3..a7827432 100644
--- a/src/x-server-local.c
+++ b/src/x-server-local.c
@@ -474,7 +474,7 @@ static gboolean
x_server_local_start (DisplayServer *display_server)
{
XServerLocal *server = X_SERVER_LOCAL (display_server);
- gboolean result;
+ gboolean result, backup_logs;
gchar *filename, *dir, *log_file, *absolute_command;
GString *command;
@@ -493,7 +493,8 @@ x_server_local_start (DisplayServer *display_server)
filename = g_strdup_printf ("%s.log", display_server_get_name (display_server));
dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
log_file = g_build_filename (dir, filename, NULL);
- process_set_log_file (server->priv->x_server_process, log_file, TRUE, LOG_MODE_APPEND);
+ backup_logs = config_get_boolean (config_get_instance (), "LightDM", "backup-logs");
+ process_set_log_file (server->priv->x_server_process, log_file, TRUE, backup_logs ? LOG_MODE_BACKUP_AND_TRUNCATE : LOG_MODE_APPEND);
l_debug (display_server, "Logging to %s", log_file);
g_free (log_file);
g_free (filename);
diff --git a/src/x-server-xvnc.c b/src/x-server-xvnc.c
index 9b03fff7..4c5597c9 100644
--- a/src/x-server-xvnc.c
+++ b/src/x-server-xvnc.c
@@ -182,7 +182,7 @@ x_server_xvnc_start (DisplayServer *display_server)
{
XServerXVNC *server = X_SERVER_XVNC (display_server);
XAuthority *authority;
- gboolean result;
+ gboolean result, backup_logs;
gchar *filename, *run_dir, *dir, *log_file, *absolute_command;
GString *command;
gchar hostname[1024], *number;
@@ -201,7 +201,8 @@ x_server_xvnc_start (DisplayServer *display_server)
filename = g_strdup_printf ("%s.log", display_server_get_name (display_server));
dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
log_file = g_build_filename (dir, filename, NULL);
- process_set_log_file (server->priv->x_server_process, log_file, FALSE, LOG_MODE_APPEND);
+ backup_logs = config_get_boolean (config_get_instance (), "LightDM", "backup-logs");
+ process_set_log_file (server->priv->x_server_process, log_file, FALSE, backup_logs ? LOG_MODE_BACKUP_AND_TRUNCATE : LOG_MODE_APPEND);
l_debug (display_server, "Logging to %s", log_file);
g_free (log_file);
g_free (filename);