Browse code

Rename screen logfiles

This renames the log files in logs/screen that contain timestamps to put
the timestamp after '.log' and '.log.summary' in the names. This will
simplify devstack-gate's search for log files to copy to '*.log'.

dstat.txt is also renamed to dstat.log

Make LOGDIR and LOGFILE local

bp:devstack-logging-and-service-names
Change-Id: I02aba9ca82c117a1186dafc1d3c07aa04ecd1dde

Dean Troyer authored on 2014/12/11 07:35:32
Showing 3 changed files
... ...
@@ -1244,8 +1244,8 @@ function _run_process {
1244 1244
     exec 6>&-
1245 1245
 
1246 1246
     if [[ -n ${SCREEN_LOGDIR} ]]; then
1247
-        exec 1>&${SCREEN_LOGDIR}/screen-${service}.${CURRENT_LOG_TIME}.log 2>&1
1248
-        ln -sf ${SCREEN_LOGDIR}/screen-${service}.${CURRENT_LOG_TIME}.log ${SCREEN_LOGDIR}/screen-${service}.log
1247
+        exec 1>&${SCREEN_LOGDIR}/screen-${service}.log.${CURRENT_LOG_TIME} 2>&1
1248
+        ln -sf ${SCREEN_LOGDIR}/screen-${service}.log.${CURRENT_LOG_TIME} ${SCREEN_LOGDIR}/screen-${service}.log
1249 1249
 
1250 1250
         # TODO(dtroyer): Hack to get stdout from the Python interpreter for the logs.
1251 1251
         export PYTHONUNBUFFERED=1
... ...
@@ -1329,9 +1329,9 @@ function screen_process {
1329 1329
     screen -S $SCREEN_NAME -X screen -t $name
1330 1330
 
1331 1331
     if [[ -n ${SCREEN_LOGDIR} ]]; then
1332
-        screen -S $SCREEN_NAME -p $name -X logfile ${SCREEN_LOGDIR}/screen-${name}.${CURRENT_LOG_TIME}.log
1332
+        screen -S $SCREEN_NAME -p $name -X logfile ${SCREEN_LOGDIR}/screen-${name}.log.${CURRENT_LOG_TIME}
1333 1333
         screen -S $SCREEN_NAME -p $name -X log on
1334
-        ln -sf ${SCREEN_LOGDIR}/screen-${name}.${CURRENT_LOG_TIME}.log ${SCREEN_LOGDIR}/screen-${name}.log
1334
+        ln -sf ${SCREEN_LOGDIR}/screen-${name}.log.${CURRENT_LOG_TIME} ${SCREEN_LOGDIR}/screen-${name}.log
1335 1335
     fi
1336 1336
 
1337 1337
     # sleep to allow bash to be ready to be send the command - we are
... ...
@@ -1377,7 +1377,7 @@ function screen_rc {
1377 1377
         echo "stuff \"$2$NL\"" >> $SCREENRC
1378 1378
 
1379 1379
         if [[ -n ${SCREEN_LOGDIR} ]]; then
1380
-            echo "logfile ${SCREEN_LOGDIR}/screen-${1}.${CURRENT_LOG_TIME}.log" >>$SCREENRC
1380
+            echo "logfile ${SCREEN_LOGDIR}/screen-${1}.log.${CURRENT_LOG_TIME}" >>$SCREENRC
1381 1381
             echo "log on" >>$SCREENRC
1382 1382
         fi
1383 1383
     fi
... ...
@@ -1489,8 +1489,8 @@ function _old_run_process {
1489 1489
     exec 6>&-
1490 1490
 
1491 1491
     if [[ -n ${SCREEN_LOGDIR} ]]; then
1492
-        exec 1>&${SCREEN_LOGDIR}/screen-${1}.${CURRENT_LOG_TIME}.log 2>&1
1493
-        ln -sf ${SCREEN_LOGDIR}/screen-${1}.${CURRENT_LOG_TIME}.log ${SCREEN_LOGDIR}/screen-${1}.log
1492
+        exec 1>&${SCREEN_LOGDIR}/screen-${1}.log.${CURRENT_LOG_TIME} 2>&1
1493
+        ln -sf ${SCREEN_LOGDIR}/screen-${1}.log.${CURRENT_LOG_TIME} ${SCREEN_LOGDIR}/screen-${1}.log
1494 1494
 
1495 1495
         # TODO(dtroyer): Hack to get stdout from the Python interpreter for the logs.
1496 1496
         export PYTHONUNBUFFERED=1
... ...
@@ -20,7 +20,7 @@ set +o xtrace
20 20
 # Defaults
21 21
 # --------
22 22
 # for DSTAT logging
23
-DSTAT_FILE=${DSTAT_FILE:-"dstat.txt"}
23
+DSTAT_FILE=${DSTAT_FILE:-"dstat.log"}
24 24
 
25 25
 
26 26
 # start_dstat() - Start running processes, including screen
... ...
@@ -370,15 +370,14 @@ if [[ -n "$LOGFILE" || -n "$SCREEN_LOGDIR" ]]; then
370 370
 fi
371 371
 
372 372
 if [[ -n "$LOGFILE" ]]; then
373
-    # First clean up old log files.  Use the user-specified ``LOGFILE``
374
-    # as the template to search for, appending '.*' to match the date
375
-    # we added on earlier runs.
376
-    LOGDIR=$(dirname "$LOGFILE")
377
-    LOGFILENAME=$(basename "$LOGFILE")
378
-    mkdir -p $LOGDIR
379
-    find $LOGDIR -maxdepth 1 -name $LOGFILENAME.\* -mtime +$LOGDAYS -exec rm {} \;
373
+    # Clean up old log files.  Append '.*' to the user-specified
374
+    # ``LOGFILE`` to match the date in the search template.
375
+    local logfile_dir="${LOGFILE%/*}"           # dirname
376
+    local logfile_name="${LOGFILE##*/}"         # basename
377
+    mkdir -p $logfile_dir
378
+    find $logfile_dir -maxdepth 1 -name $logfile_name.\* -mtime +$LOGDAYS -exec rm {} \;
380 379
     LOGFILE=$LOGFILE.${CURRENT_LOG_TIME}
381
-    SUMFILE=$LOGFILE.${CURRENT_LOG_TIME}.summary
380
+    SUMFILE=$LOGFILE.summary.${CURRENT_LOG_TIME}
382 381
 
383 382
     # Redirect output according to config
384 383
 
... ...
@@ -399,8 +398,8 @@ if [[ -n "$LOGFILE" ]]; then
399 399
 
400 400
     echo_summary "stack.sh log $LOGFILE"
401 401
     # Specified logfile name always links to the most recent log
402
-    ln -sf $LOGFILE $LOGDIR/$LOGFILENAME
403
-    ln -sf $SUMFILE $LOGDIR/$LOGFILENAME.summary
402
+    ln -sf $LOGFILE $logfile_dir/$logfile_name
403
+    ln -sf $SUMFILE $logfile_dir/$logfile_name.summary
404 404
 else
405 405
     # Set up output redirection without log files
406 406
     # Set fd 3 to a copy of stdout. So we can set fd 1 without losing