[master/rhel7] Remove logging to tty3 and tty5 (#1073336)

Brian C. Lane bcl at redhat.com
Fri Aug 22 00:51:00 UTC 2014


tmux handles tailing the relevant logs in other windows, there is no
need to be writing directly to a tty any longer. It also interferes with
the host system when running anaconda using --image or --dirinstall from
the cmdline.

Resolves: rhbz#1073336
---
 anaconda                   |  2 +-
 pyanaconda/anaconda_log.py | 19 +++----------------
 pyanaconda/isys/log.c      | 20 +-------------------
 pyanaconda/isys/log.h      |  1 -
 pyanaconda/kickstart.py    |  6 +++---
 pyanaconda/network.py      |  5 -----
 6 files changed, 8 insertions(+), 45 deletions(-)

diff --git a/anaconda b/anaconda
index ffce0f0..edaf097 100755
--- a/anaconda
+++ b/anaconda
@@ -348,7 +348,7 @@ def setupEnvironment():
 def setupLoggingFromOpts(options):
     if options.loglevel and anaconda_log.logLevelMap.has_key(options.loglevel):
         level = anaconda_log.logLevelMap[options.loglevel]
-        anaconda_log.logger.tty_loglevel = level
+        anaconda_log.logger.loglevel = level
         anaconda_log.setHandlersLevel(log, level)
         storage_log = logging.getLogger("storage")
         anaconda_log.setHandlersLevel(storage_log, level)
diff --git a/pyanaconda/anaconda_log.py b/pyanaconda/anaconda_log.py
index e2d6fa5..4f678d8 100644
--- a/pyanaconda/anaconda_log.py
+++ b/pyanaconda/anaconda_log.py
@@ -31,16 +31,13 @@ import warnings
 
 from pyanaconda.flags import flags
 
-DEFAULT_TTY_LEVEL = logging.INFO
+DEFAULT_LEVEL = logging.INFO
 ENTRY_FORMAT = "%(asctime)s,%(msecs)03d %(levelname)s %(name)s: %(message)s"
-TTY_FORMAT = "%(levelname)s %(name)s: %(message)s"
 STDOUT_FORMAT = "%(asctime)s %(message)s"
 DATE_FORMAT = "%H:%M:%S"
 
 MAIN_LOG_FILE = "/tmp/anaconda.log"
-MAIN_LOG_TTY = "/dev/tty3"
 PROGRAM_LOG_FILE = "/tmp/program.log"
-PROGRAM_LOG_TTY = "/dev/tty5"
 STORAGE_LOG_FILE = "/tmp/storage.log"
 PACKAGING_LOG_FILE = "/tmp/packaging.log"
 ANACONDA_SYSLOG_FACILITY = SysLogHandler.LOG_LOCAL1
@@ -80,7 +77,7 @@ class AnacondaLog:
     VIRTIO_PORT = "/dev/virtio-ports/org.fedoraproject.anaconda.log.0"
 
     def __init__ (self):
-        self.tty_loglevel = DEFAULT_TTY_LEVEL
+        self.loglevel = DEFAULT_LEVEL
         self.remote_syslog = None
         # Rename the loglevels so they are the same as in syslog.
         logging.addLevelName(logging.WARNING, "WARN")
@@ -102,22 +99,12 @@ class AnacondaLog:
         for logr in [self.anaconda_logger, storage_logger]:
             logr.setLevel(logging.DEBUG)
             self.forwardToSyslog(logr)
-            # Logging of basic stuff and storage to tty3.
-            # XXX Use os.uname here since it's too early to be importing the
-            #     storage module.
-            if not os.uname()[4].startswith('s390') and os.access(MAIN_LOG_TTY, os.W_OK):
-                self.addFileHandler(MAIN_LOG_TTY, logr,
-                                    fmtStr=TTY_FORMAT,
-                                    autoLevel=True)
 
         # External program output log
         program_logger = logging.getLogger("program")
         program_logger.setLevel(logging.DEBUG)
         self.addFileHandler(PROGRAM_LOG_FILE, program_logger,
                             minLevel=logging.DEBUG)
-        self.addFileHandler(PROGRAM_LOG_TTY, program_logger,
-                            fmtStr=TTY_FORMAT,
-                            autoLevel=True)
         self.forwardToSyslog(program_logger)
 
         # Create the packaging logger.
@@ -151,7 +138,7 @@ class AnacondaLog:
                             fmtStr=STDOUT_FORMAT, minLevel=logging.INFO)
 
     # Add a simple handler - file or stream, depending on what we're given.
-    def addFileHandler (self, dest, addToLogger, minLevel=DEFAULT_TTY_LEVEL,
+    def addFileHandler (self, dest, addToLogger, minLevel=DEFAULT_LEVEL,
                         fmtStr=ENTRY_FORMAT,
                         autoLevel=False):
         try:
diff --git a/pyanaconda/isys/log.c b/pyanaconda/isys/log.c
index 9c9d5bb..aa285dc 100644
--- a/pyanaconda/isys/log.c
+++ b/pyanaconda/isys/log.c
@@ -34,10 +34,8 @@
 
 #include "log.h"
 
-static FILE * main_log_tty = NULL;
 static FILE * main_log_file = NULL;
 static FILE * program_log_file = NULL;
-static loglevel_t minLevel = INFO;
 static const char * main_tag = "anaconda";
 static const char * program_tag = "program";
 static const int syslog_facility = LOG_LOCAL1;
@@ -104,12 +102,9 @@ static void retagSyslog(const char* new_tag)
 }
 
 void logMessageV(enum logger_t logger, loglevel_t level, const char * s, va_list ap) {
-    FILE *log_tty = main_log_tty;
     FILE *log_file = main_log_file;
     const char *tag = main_tag;
     if (logger == PROGRAM_LOG) {
-        /* tty output is done directly for programs */
-        log_tty = NULL;
         log_file = program_log_file;
         tag = program_tag;
         /* close and reopen syslog so we get the tagging right */
@@ -122,12 +117,7 @@ void logMessageV(enum logger_t logger, loglevel_t level, const char * s, va_list
     vsyslog(mapLogLevel(level), s, apc);
     va_end(apc);
 
-    /* Only log to the screen things that are above the minimum level. */
-    if (main_log_tty && level >= minLevel && log_tty) {
-        printLogMessage(level, tag, log_tty, s, ap);
-    }
-
-    /* But log everything to the file. */
+    /* Log everything to the file. */
     if (main_log_file) {
         printLogMessage(level, tag, log_file, s, ap);
     }
@@ -145,7 +135,6 @@ void logMessage(loglevel_t level, const char * s, ...) {
     va_end(args);
 }
 
-int tty_logfd = -1;
 int file_logfd = -1;
 
 void openLog() {
@@ -154,16 +143,9 @@ void openLog() {
     openlog(main_tag, 0, syslog_facility);
 
     int flags;
-    main_log_tty = fopen("/dev/tty3", "a");
     main_log_file = fopen("/tmp/anaconda.log", "a");
     program_log_file = fopen("/tmp/program.log", "a");
 
-    if (main_log_tty) {
-        tty_logfd = fileno(main_log_tty);
-        flags = fcntl(tty_logfd, F_GETFD, 0) | FD_CLOEXEC;
-        fcntl(tty_logfd, F_SETFD, flags);
-    }
-
     if (main_log_file) {
         file_logfd = fileno(main_log_file);
         flags = fcntl(file_logfd, F_GETFD, 0) | FD_CLOEXEC;
diff --git a/pyanaconda/isys/log.h b/pyanaconda/isys/log.h
index f095f44..8e050a9 100644
--- a/pyanaconda/isys/log.h
+++ b/pyanaconda/isys/log.h
@@ -42,7 +42,6 @@ void logMessage(loglevel_t level, const char * s, ...)
     __attribute__ ((format (printf, 2, 3)));
 void openLog();
 
-extern int tty_logfd;
 extern int file_logfd;
 
 #endif /* _LOG_H_ */
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index 977d9a0..a210a22 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -73,7 +73,7 @@ log = logging.getLogger("anaconda")
 stderrLog = logging.getLogger("anaconda.stderr")
 storage_log = logging.getLogger("blivet")
 stdoutLog = logging.getLogger("anaconda.stdout")
-from pyanaconda.anaconda_log import logger, logLevelMap, setHandlersLevel, DEFAULT_TTY_LEVEL
+from pyanaconda.anaconda_log import logger, logLevelMap, setHandlersLevel, DEFAULT_LEVEL
 
 class AnacondaKSScript(KSScript):
     """ Execute a kickstart script
@@ -920,10 +920,10 @@ class LogVolData(commands.logvol.F20_LogVolData):
 
 class Logging(commands.logging.FC6_Logging):
     def execute(self, *args):
-        if logger.tty_loglevel == DEFAULT_TTY_LEVEL:
+        if logger.loglevel == DEFAULT_LEVEL:
             # not set from the command line
             level = logLevelMap[self.level]
-            logger.tty_loglevel = level
+            logger.loglevel = level
             setHandlersLevel(log, level)
             setHandlersLevel(storage_log, level)
 
diff --git a/pyanaconda/network.py b/pyanaconda/network.py
index 144548d..f0b22bf 100644
--- a/pyanaconda/network.py
+++ b/pyanaconda/network.py
@@ -70,11 +70,6 @@ def setup_ifcfg_log():
     logger = logging.getLogger("ifcfg")
     logger.setLevel(logging.DEBUG)
     anaconda_log.logger.addFileHandler(ifcfgLogFile, logger, logging.DEBUG)
-    if os.access("/dev/tty3", os.W_OK):
-        anaconda_log.logger.addFileHandler("/dev/tty3", logger,
-                                           anaconda_log.DEFAULT_TTY_LEVEL,
-                                           anaconda_log.TTY_FORMAT,
-                                           autoLevel=True)
     anaconda_log.logger.forwardToSyslog(logger)
 
     ifcfglog = logging.getLogger("ifcfg")
-- 
1.9.3



More information about the anaconda-patches mailing list