Advertisement
Guest User

robertc

a guest
Dec 8th, 2011
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. === modified file 'daemons/poppy-sftp.tac'
  2. --- daemons/poppy-sftp.tac 2011-05-10 13:56:21 +0000
  3. +++ daemons/poppy-sftp.tac 2011-12-08 19:42:58 +0000
  4. @@ -70,9 +70,9 @@
  5. return SFTPServer(avatar, get_poppy_root())
  6.  
  7.  
  8. -# Connect Python logging to Twisted's logging.
  9. -from lp.services.twistedsupport.loggingsupport import set_up_tacfile_logging
  10. -set_up_tacfile_logging("poppy-sftp", logging.INFO)
  11. +# Force python logging to stdout - output on stderr will generate OOPSes
  12. +# Due to twisteds startLoggingWithObserver mangling of stderr.
  13. +logging.basicConfig(stream=sys.stdout, level=logging.INFO)
  14.  
  15.  
  16. components.registerAdapter(
  17. @@ -87,6 +87,8 @@
  18. # Construct an Application that has the Poppy SSH server,
  19. # and the Poppy FTP server.
  20. application = service.Application('poppy-sftp')
  21. +application.addComponent(set_up_oops_reporting(
  22. + 'poppy-sftp', 'poppy-sftp', options.get('logfile')), ignoreClass=1)
  23.  
  24. ftpservice.setServiceParent(application)
  25.  
  26.  
  27. === modified file 'lib/lp/services/twistedsupport/loggingsupport.py'
  28. --- lib/lp/services/twistedsupport/loggingsupport.py 2011-10-14 04:40:49 +0000
  29. +++ lib/lp/services/twistedsupport/loggingsupport.py 2011-12-08 19:43:04 +0000
  30. @@ -46,26 +46,7 @@
  31. return logger_object
  32.  
  33.  
  34. -def set_up_tacfile_logging(name, level):
  35. - """Create a `Logger` object for use in tac files.
  36. -
  37. - This is preferable to use over `set_up_logging_for_script` for .tac
  38. - files since there's no options to pass through. The logger object
  39. - is connected to Twisted's log and returned.
  40. -
  41. - :param name: The logger instance name.
  42. - :param level: The log level to use, eg. logging.INFO or logging.DEBUG
  43. - """
  44. - logger = logging.getLogger(name)
  45. - channel = logging.StreamHandler(log.StdioOnnaStick())
  46. - channel.setLevel(level)
  47. - channel.setFormatter(logging.Formatter('%(message)s'))
  48. - logger.addHandler(channel)
  49. - logger.setLevel(level)
  50. - return logger
  51. -
  52. -
  53. -def set_up_oops_reporting(name, configuration, mangle_stdout=True):
  54. +def set_up_oops_reporting(name, configuration, logfile, mangle_stdout=True):
  55. """Set up OOPS reporting by starting the Twisted logger with an observer.
  56.  
  57. :param name: The name of the logger to use for oops reporting.
  58. @@ -78,9 +59,10 @@
  59. configuration,
  60. config_factory=oops_twisted.Config,
  61. publisher_adapter=oops_twisted.defer_publisher)
  62. + log_observer = RotatableFileLogObserver(logfile)
  63. oops_observer = OOPSObserver(errorlog.globalErrorUtility._oops_config,
  64. - log.PythonLoggingObserver(loggerName=name).emit)
  65. - log.startLoggingWithObserver(oops_observer.emit, mangle_stdout)
  66. + log_observer)
  67. + return oops_observer
  68.  
  69.  
  70. class LaunchpadLogFile(DailyLogFile):
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement