]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Add a backup-logs option to re-enable the old log backup mode
authorRobert Ancell <robert.ancell@canonical.com>
Wed, 28 Oct 2015 03:22:31 +0000 (16:22 +1300)
committerRobert Ancell <robert.ancell@canonical.com>
Wed, 28 Oct 2015 03:22:31 +0000 (16:22 +1300)
data/lightdm.conf
src/seat.c
src/unity-system-compositor.c
src/x-server-local.c
src/x-server-xvnc.c

index 8284081b783735cfc15ff59493bd4bd251d9bd36..e55ac1756e8cc9a555cc261dcf4b12f8d2a9aded 100644 (file)
@@ -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
index 6d0a6ced5141f92fff753145e16829434688bc9d..fa9699bc401f45a6972e8d0763f7b15ffdeac3f4 100644 (file)
@@ -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);
     }
 
index 203f2aeba1252c808eeee52494ec70e59cad5651..069e11a8f5f237f960ac76c672abfd3fc14799b1 100644 (file)
@@ -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");
index 384c76c3ab98a5461e1e634a955714be167d59c9..a78274321cb6c2fb3d6ba4eae34772347295058d 100644 (file)
@@ -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);
index 9b03fff7e38cf00fd9bb9c284e6f79e5cab821e7..4c5597c9f781e0ce9bf85a8bf5f2e38eabb201e0 100644 (file)
@@ -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);