Home | History | Annotate | Download | only in server2
      1 # Copyright 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from __future__ import print_function
      6 
      7 import logging
      8 import os
      9 import sys
     10 
     11 def EnableLogging(name):
     12   '''Returns the output of the log with |name| to stdout.
     13   '''
     14   return _ReplaceLogging(name, lambda message: print(message))
     15 
     16 def DisableLogging(name):
     17   '''Disables the log with |name| for the duration of the decorated function.
     18   '''
     19   return _ReplaceLogging(name, lambda _: None)
     20 
     21 def _ReplaceLogging(name, replacement):
     22   def decorator(fn):
     23     def impl(*args, **optargs):
     24       saved = getattr(logging, name)
     25       setattr(logging, name, replacement)
     26       try:
     27         return fn(*args, **optargs)
     28       finally:
     29         setattr(logging, name, saved)
     30     return impl
     31   return decorator
     32 
     33 # TODO(kalman): Use this everywhere. A lot of tests are doing this.
     34 def ReadFile(name):
     35   with open(os.path.join(sys.path[0], os.pardir, os.pardir, name)) as f:
     36     return f.read()
     37