apache_log_metrics: Remove dependency on devserver_lib

Don't import devserver_lib just to set up a rotating log handler.

BUG=chromium:757002
TEST=unit tests

Change-Id: I00170a962ab5dcb63d0c980331371dbe79db0494
Reviewed-on: https://chromium-review.googlesource.com/621780
Commit-Ready: Paul Hobbs <phobbs@google.com>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
diff --git a/apache_log_metrics.py b/apache_log_metrics.py
index 9c9d52c..073a123 100755
--- a/apache_log_metrics.py
+++ b/apache_log_metrics.py
@@ -17,14 +17,21 @@
 
 # TODO(ayatane): Fix cros lint pylint to work with virtualenv imports
 # pylint: disable=import-error
-from devserver_lib.devserver import MakeLogHandler
 
 # only import setup_chromite before chromite import.
 import setup_chromite # pylint: disable=unused-import
 from chromite.lib import ts_mon_config
 from chromite.lib import metrics
 from chromite.lib import cros_logging as logging
-from infra_libs import ts_mon
+
+
+# Log rotation parameters.  Keep about two weeks of old logs.
+#
+# For more, see the documentation in standard python library for
+# logging.handlers.TimedRotatingFileHandler
+_LOG_ROTATION_TIME = 'H'
+_LOG_ROTATION_INTERVAL = 24 # hours
+_LOG_ROTATION_BACKUP = 14 # backup counts
 
 
 STATIC_GET_MATCHER = re.compile(
@@ -177,9 +184,6 @@
       m = matcher.match(line)
       if m:
         emitter(m)
-  # The input might terminate if the log gets rotated. Make sure that Monarch
-  # flushes any pending metrics before quitting.
-  ts_mon.close()
 
 
 # TODO(phobbs) add a matcher for all requests, not just static files.
@@ -201,10 +205,14 @@
   args = ParseArgs()
   root = logging.getLogger()
 
-  root.addHandler(MakeLogHandler(args.logfile))
+  root.addHandler(logging.handlers.TimedRotatingFileHandler(
+      args.logfile, when=_LOG_ROTATION_TIME,
+      interval=_LOG_ROTATION_INTERVAL,
+      backupCount=_LOG_ROTATION_BACKUP))
   root.setLevel(logging.DEBUG)
-  ts_mon_config.SetupTsMonGlobalState('devserver_apache_log_metrics')
-  RunMatchers(sys.stdin, MATCHERS)
+  with ts_mon_config.SetupTsMonGlobalState('devserver_apache_log_metrics',
+                                           indirect=True):
+    RunMatchers(sys.stdin, MATCHERS)
 
 
 if __name__ == '__main__':