~didrocks/ubuntuone-client/use_result_var

« back to all changes in this revision

Viewing changes to ubuntuone/syncdaemon/logger.py

  • Committer: Bazaar Package Importer
  • Author(s): Rodney Dawes
  • Date: 2011-02-11 16:18:11 UTC
  • mto: This revision was merged to the branch mainline in revision 67.
  • Revision ID: james.westby@ubuntu.com-20110211161811-n18dj9lde7dxqjzr
Tags: upstream-1.5.4
ImportĀ upstreamĀ versionĀ 1.5.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
)
35
35
# api compatibility imports
36
36
from ubuntuone import logger
 
37
from ubuntuone.platform import get_filesystem_logger, setup_filesystem_logging
37
38
DebugCapture = logger.DebugCapture
38
39
NOTE = logger.NOTE
39
40
TRACE = logger.TRACE
121
122
            return failure
122
123
        return callback, errback
123
124
# pylint: enable-msg=C0103
124
 
 
125
 
 
126
 
### configure the thing ###
127
125
LOGFILENAME = os.path.join(LOGFOLDER, 'syncdaemon.log')
128
126
EXLOGFILENAME = os.path.join(LOGFOLDER, 'syncdaemon-exceptions.log')
129
127
INVALIDLOGFILENAME = os.path.join(LOGFOLDER, 'syncdaemon-invalid-names.log')
130
128
BROKENLOGFILENAME = os.path.join(LOGFOLDER, 'syncdaemon-broken-nodes.log')
131
129
 
132
130
 
133
 
# root logger
134
131
root_logger = logging.getLogger("ubuntuone.SyncDaemon")
135
 
root_logger.propagate = False
136
 
root_logger.setLevel(_DEBUG_LOG_LEVEL)
137
 
root_handler = CustomRotatingFileHandler(filename=LOGFILENAME)
138
 
root_handler.addFilter(MultiFilter(['ubuntuone.SyncDaemon',
139
 
                                    'twisted', 'pyinotify']))
140
 
root_handler.setFormatter(basic_formatter)
141
 
root_handler.setLevel(_DEBUG_LOG_LEVEL)
142
 
root_logger.addHandler(root_handler)
143
 
# exception logs
144
 
exception_handler = CustomRotatingFileHandler(filename=EXLOGFILENAME)
145
 
exception_handler.setFormatter(basic_formatter)
146
 
exception_handler.setLevel(logging.ERROR)
147
 
# add the exception handler to the root logger
148
 
logging.getLogger('').addHandler(exception_handler)
149
 
root_logger.addHandler(exception_handler)
150
 
 
151
 
# hook twisted.python.log with standard logging
152
 
from twisted.python import log
153
 
observer = log.PythonLoggingObserver('twisted')
154
 
observer.start()
155
 
# configure the logger to only show errors
156
132
twisted_logger = logging.getLogger('twisted')
157
 
twisted_logger.propagate = False
158
 
twisted_logger.setLevel(logging.ERROR)
159
 
twisted_logger.addHandler(root_handler)
160
 
twisted_logger.addHandler(exception_handler)
161
 
 
162
 
 
163
 
# allow pyinotify to configure it's custom logger
164
 
import pyinotify
165
 
# fallback to logging.getLogger(name) to support older versions of pyinotify
166
 
inotify_logger = getattr(pyinotify, 'log', logging.getLogger('pyinotify'))
 
133
 
 
134
filesystem_logger = get_filesystem_logger()
167
135
# now restore our custom logger class
168
136
logging.setLoggerClass(Logger)
169
 
# hook pyinotify logger, but remove the console handler first
170
 
for hdlr in inotify_logger.handlers:
171
 
    if isinstance(hdlr, logging.StreamHandler):
172
 
        inotify_logger.removeHandler(hdlr)
173
 
inotify_logger.addHandler(root_handler)
174
 
inotify_logger.setLevel(logging.ERROR)
175
 
inotify_logger.propagate = False
176
 
 
177
 
# invalid filenames log
178
 
invnames_logger = logging.getLogger("ubuntuone.SyncDaemon.InvalidNames")
179
 
invnames_logger.setLevel(_DEBUG_LOG_LEVEL)
180
 
invnames_handler = CustomRotatingFileHandler(filename=INVALIDLOGFILENAME)
181
 
invnames_handler.setFormatter(basic_formatter)
182
 
invnames_handler.setLevel(logging.INFO)
183
 
invnames_logger.addHandler(invnames_handler)
184
 
 
185
 
# broken nodes log
186
 
brokennodes_logger = logging.getLogger("ubuntuone.SyncDaemon.BrokenNodes")
187
 
brokennodes_logger.setLevel(_DEBUG_LOG_LEVEL)
188
 
brokennodes_handler = CustomRotatingFileHandler(filename=BROKENLOGFILENAME)
189
 
brokennodes_handler.setFormatter(basic_formatter)
190
 
brokennodes_handler.setLevel(logging.INFO)
191
 
brokennodes_logger.addHandler(brokennodes_handler)
 
137
 
 
138
root_handler = CustomRotatingFileHandler(filename=LOGFILENAME)
 
139
exception_handler = CustomRotatingFileHandler(filename=EXLOGFILENAME)
 
140
 
 
141
def init():
 
142
    # root logger
 
143
    root_logger.propagate = False
 
144
    root_logger.setLevel(_DEBUG_LOG_LEVEL)
 
145
    root_handler.addFilter(MultiFilter(['ubuntuone.SyncDaemon',
 
146
                                        'twisted', 'pyinotify']))
 
147
    root_handler.setFormatter(basic_formatter)
 
148
    root_handler.setLevel(_DEBUG_LOG_LEVEL)
 
149
    root_logger.addHandler(root_handler)
 
150
    # exception logs
 
151
    exception_handler.setFormatter(basic_formatter)
 
152
    exception_handler.setLevel(logging.ERROR)
 
153
    # add the exception handler to the root logger
 
154
    logging.getLogger('').addHandler(exception_handler)
 
155
    root_logger.addHandler(exception_handler)
 
156
    
 
157
    # hook twisted.python.log with standard logging
 
158
    from twisted.python import log
 
159
    observer = log.PythonLoggingObserver('twisted')
 
160
    observer.start()
 
161
    # configure the logger to only show errors
 
162
    twisted_logger.propagate = False
 
163
    twisted_logger.setLevel(logging.ERROR)
 
164
    twisted_logger.addHandler(root_handler)
 
165
    twisted_logger.addHandler(exception_handler)   
 
166
    
 
167
    # set the filesystem logging    
 
168
    setup_filesystem_logging(filesystem_logger, root_handler)
 
169
 
 
170
    # invalid filenames log
 
171
    invnames_logger = logging.getLogger("ubuntuone.SyncDaemon.InvalidNames")
 
172
    invnames_logger.setLevel(_DEBUG_LOG_LEVEL)
 
173
    invnames_handler = CustomRotatingFileHandler(filename=INVALIDLOGFILENAME)
 
174
    invnames_handler.setFormatter(basic_formatter)
 
175
    invnames_handler.setLevel(logging.INFO)
 
176
    invnames_logger.addHandler(invnames_handler)
 
177
    
 
178
    # broken nodes log
 
179
    brokennodes_logger = logging.getLogger("ubuntuone.SyncDaemon.BrokenNodes")
 
180
    brokennodes_logger.setLevel(_DEBUG_LOG_LEVEL)
 
181
    brokennodes_handler = CustomRotatingFileHandler(filename=BROKENLOGFILENAME)
 
182
    brokennodes_handler.setFormatter(basic_formatter)
 
183
    brokennodes_handler.setLevel(logging.INFO)
 
184
    brokennodes_logger.addHandler(brokennodes_handler)
192
185
 
193
186
 
194
187
def configure_logging(level, maxBytes, backupCount):