-import sys, os
-import logging
-from logging import Logger, StreamHandler
-
-
-class Loggers(Logger):
- """Defines several logs:
-
- `self`
- root log, which sends messages to `eval` and `test` logs
- `self.eval`
- main log, initially a duplicated fd 2 (stderr)
- `self.user`
- public progress log, initially a duplicated fd 1 (stdout)
- `self.test`
- per-test log, initially no handler, to be directed to file like `{TEST}.log`
-
- .. note:: Currently, the logs and fd's get never closed.
- .. warning:: `Loggers.open_eval_log` changes global fd's 1 and 2 by default.
- """
- def __init__(self):
- "Initialize loggers as described in class description."
- Logger.__init__(self, '')
- # Duplicate the fd's
- self.orig_stdout_fd = os.dup(1)
- self.orig_stdout_file = os.fdopen(self.orig_stdout_fd, 'w', 0)
- self.orig_stderr_fd = os.dup(2)
- self.orig_stderr_file = os.fdopen(self.orig_stderr_fd, 'w', 0)
- # Eval main logger
- self.eval = Logger('eval')
- self.eval.addHandler(StreamHandler(self.orig_stderr_file))
- # per-test logger
- self.test = Logger('test')
- self.test_handler = None
- self.test_file = None
- # user progress logger
- self.user = Logger('user')
- self.eval.addHandler(StreamHandler(self.orig_stdout_file))
-
- self.addHandler(self.test)
- self.addHandler(self.eval)
- self.debug('Logging initialized.')
+"""
+
+`Loggers` is a collection of logggers for :class:`~moe.eval.Eval`, initializing 4 subloggers (see class description).
+
+Use as `e.log.debug(...)` for main log that goes both to `test` and `main` log,
+`e.log.test.debug(...)` for individual logs.
+
+.. :data:: DDEBUG = 5
+ Very verbose debugging level
+
+Defines several logs:
+
+`log`
+ main log, initially a duplicated fd 2 (stderr)
+`userlog`
+ public progress log, initially a duplicated fd 1 (stdout)
+`testlog`
+ per-test log, initially no handler, to be directed to file like `{TEST}.log`
+
+.. note:: Currently, the logs and fd's get never closed.
+.. warning:: `Loggers.open_eval_log` changes global fd's 1 and 2 by default.
+"""
+
+
+# Global logs to be imported by every module
+
+__all__ = ['log', 'userlog', 'testlog', 'pipelog' ]
+
+log = None
+userlog = None
+testlog = None
+pipelog = None
+
+orig_stdout_fd = None
+orig_stdout_file = None
+orig_stderr_fd = None
+orig_stderr_file = None
+testlog_file = None