本文整理汇总了Python中vsc.utils.fancylogger.logToFile函数的典型用法代码示例。如果您正苦于以下问题:Python logToFile函数的具体用法?Python logToFile怎么用?Python logToFile使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了logToFile函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: postprocess
def postprocess(self):
"""Do some postprocessing, in particular print stuff"""
build_log.EXPERIMENTAL = self.options.experimental
config.SUPPORT_OLDSTYLE = self.options.oldstyleconfig
# set strictness of run module
if self.options.strict:
run.strictness = self.options.strict
if self.options.deprecated:
build_log.CURRENT_VERSION = LooseVersion(self.options.deprecated)
if self.options.unittest_file:
fancylogger.logToFile(self.options.unittest_file)
if any([self.options.avail_easyconfig_params, self.options.avail_easyconfig_templates,
self.options.list_easyblocks, self.options.list_toolchains,
self.options.avail_easyconfig_constants, self.options.avail_easyconfig_licenses,
self.options.avail_repositories, self.options.show_default_moduleclasses,
self.options.avail_modules_tools, self.options.avail_module_naming_schemes,
]):
build_easyconfig_constants_dict() # runs the easyconfig constants sanity check
self._postprocess_list_avail()
self._postprocess_config()
示例2: test_logtofile
def test_logtofile(self):
"""Test to see if logtofile doesn't fail when logging to a non existing file /directory"""
tempdir = tempfile.mkdtemp()
non_dir = os.path.join(tempdir, 'verytempdir')
fancylogger.logToFile(os.path.join(non_dir, 'nosuchfile'))
# clean up temp dir
shutil.rmtree(tempdir)
示例3: parseoptions
def parseoptions(self, options_list=None):
"""
Handle mpirun mode:
- continue with reduced set of commandline options
- These options are the keys of opts_to_remove.
- The values of opts_to_remove are the number of arguments of these options, that also need to be removed.
"""
if options_list is None:
options_list = self.default_parseoptions()
newopts = options_list[:] # copy
if self.mpirunmode:
opts_to_remove = {
'-np': 1,
'-machinefile': 1
}
for opt in opts_to_remove.keys():
try:
pos = newopts.index(opt)
# remove 1 + args
del newopts[pos:pos + 1 + opts_to_remove[opt]]
except ValueError:
continue
GeneralOption.parseoptions(self, newopts)
# set error logging to file as soon as possible
if self.options.logtofile:
print("logtofile %s" % self.options.logtofile)
if os.path.exists(self.options.logtofile):
os.remove(self.options.logtofile)
fancylogger.logToFile(self.options.logtofile)
fancylogger.logToScreen(False)
示例4: test_loggedexception_defaultlogger
def test_loggedexception_defaultlogger(self):
"""Test LoggedException custom exception class."""
fd, tmplog = tempfile.mkstemp()
os.close(fd)
# set log format, for each regex searching
setLogFormat("%(name)s :: %(message)s")
# if no logger is available, and no logger is specified, use default 'root' fancylogger
logToFile(tmplog, enable=True)
self.assertErrorRegex(LoggedException, 'BOOM', raise_loggedexception, 'BOOM')
logToFile(tmplog, enable=False)
log_re = re.compile("^%s :: BOOM( \(at .*:[0-9]+ in raise_loggedexception\))?$" % getRootLoggerName(), re.M)
logtxt = open(tmplog, 'r').read()
self.assertTrue(log_re.match(logtxt), "%s matches %s" % (log_re.pattern, logtxt))
# test formatting of message
self.assertErrorRegex(LoggedException, 'BOOMBAF', raise_loggedexception, 'BOOM%s', 'BAF')
# test log message that contains '%s' without any formatting arguments being passed
# test formatting of message
self.assertErrorRegex(LoggedException, "BOOM '%s'", raise_loggedexception, "BOOM '%s'")
os.remove(tmplog)
示例5: test_easybuilderror
def test_easybuilderror(self):
"""Tests for EasyBuildError."""
fd, tmplog = tempfile.mkstemp()
os.close(fd)
# set log format, for each regex searching
setLogFormat("%(name)s :: %(message)s")
# if no logger is available, and no logger is specified, use default 'root' fancylogger
logToFile(tmplog, enable=True)
self.assertErrorRegex(EasyBuildError, 'BOOM', raise_easybuilderror, 'BOOM')
logToFile(tmplog, enable=False)
log_re = re.compile("^%s ::.* BOOM \(at .*:[0-9]+ in [a-z_]+\)$" % getRootLoggerName(), re.M)
logtxt = open(tmplog, 'r').read()
self.assertTrue(log_re.match(logtxt), "%s matches %s" % (log_re.pattern, logtxt))
# test formatting of message
self.assertErrorRegex(EasyBuildError, 'BOOMBAF', raise_easybuilderror, 'BOOM%s', 'BAF')
# a '%s' in a value used to template the error message should not print a traceback!
self.mock_stderr(True)
self.assertErrorRegex(EasyBuildError, 'err: msg: %s', raise_easybuilderror, "err: %s", "msg: %s")
stderr = self.get_stderr()
self.mock_stderr(False)
# stderr should be *empty* (there should definitely not be a traceback)
self.assertEqual(stderr, '')
os.remove(tmplog)
示例6: test_module_mismatch
def test_module_mismatch(self):
"""Test whether mismatch detection between modules tool and 'module' function works."""
# redefine 'module' function (deliberate mismatch with used module command in MockModulesTool)
os.environ["module"] = "() { eval `/tmp/Modules/$MODULE_VERSION/bin/modulecmd bash $*`\n}"
error_regex = ".*pattern .* not found in defined 'module' function"
self.assertErrorRegex(EasyBuildError, error_regex, MockModulesTool, testing=True)
# check whether escaping error by allowing mismatch via build options works
build_options = {"allow_modules_tool_mismatch": True}
init_config(build_options=build_options)
fancylogger.logToFile(self.logfile)
mt = MockModulesTool(testing=True)
f = open(self.logfile, "r")
logtxt = f.read()
f.close()
warn_regex = re.compile("WARNING .*pattern .* not found in defined 'module' function")
self.assertTrue(warn_regex.search(logtxt), "Found pattern '%s' in: %s" % (warn_regex.pattern, logtxt))
# redefine 'module' function with correct module command
os.environ["module"] = "() { eval `/bin/echo $*`\n}"
mt = MockModulesTool(testing=True)
self.assertTrue(isinstance(mt.loaded_modules(), list)) # dummy usage
# a warning should be logged if the 'module' function is undefined
del os.environ["module"]
mt = MockModulesTool(testing=True)
f = open(self.logfile, "r")
logtxt = f.read()
f.close()
warn_regex = re.compile("WARNING No 'module' function defined, can't check if it matches .*")
self.assertTrue(warn_regex.search(logtxt), "Pattern %s found in %s" % (warn_regex.pattern, logtxt))
fancylogger.logToFile(self.logfile, enable=False)
示例7: tearDown
def tearDown(self):
fancylogger.logToFile(self.logfn, enable=False)
self.handle.close()
os.remove(self.logfn)
fancylogger.FancyLogger.RAISE_EXCEPTION_CLASS = self.orig_raise_exception_class
fancylogger.FancyLogger.RAISE_EXCEPTION_LOG_METHOD = self.orig_raise_exception_method
示例8: postprocess
def postprocess(self):
"""Do some postprocessing, in particular print stuff"""
build_log.EXPERIMENTAL = self.options.experimental
# set strictness of run module
if self.options.strict:
run.strictness = self.options.strict
# override current version of EasyBuild with version specified to --deprecated
if self.options.deprecated:
build_log.CURRENT_VERSION = LooseVersion(self.options.deprecated)
# log to specified value of --unittest-file
if self.options.unittest_file:
fancylogger.logToFile(self.options.unittest_file)
# set tmpdir
self.tmpdir = set_tmpdir(self.options.tmpdir)
# take --include options into account
self._postprocess_include()
# prepare for --list/--avail
if any([self.options.avail_easyconfig_params, self.options.avail_easyconfig_templates,
self.options.list_easyblocks, self.options.list_toolchains, self.options.avail_cfgfile_constants,
self.options.avail_easyconfig_constants, self.options.avail_easyconfig_licenses,
self.options.avail_repositories, self.options.show_default_moduleclasses,
self.options.avail_modules_tools, self.options.avail_module_naming_schemes,
self.options.show_default_configfiles,
]):
build_easyconfig_constants_dict() # runs the easyconfig constants sanity check
self._postprocess_list_avail()
# fail early if required dependencies for functionality requiring using GitHub API are not available:
if self.options.from_pr or self.options.upload_test_report:
if not HAVE_GITHUB_API:
raise EasyBuildError("Required support for using GitHub API is not available (see warnings).")
if self.options.module_syntax == ModuleGeneratorLua.SYNTAX and self.options.modules_tool != Lmod.__name__:
raise EasyBuildError("Generating Lua module files requires Lmod as modules tool.")
# make sure a GitHub token is available when it's required
if self.options.upload_test_report:
if not HAVE_KEYRING:
raise EasyBuildError("Python 'keyring' module required for obtaining GitHub token is not available.")
if self.options.github_user is None:
raise EasyBuildError("No GitHub user name provided, required for fetching GitHub token.")
token = fetch_github_token(self.options.github_user)
if token is None:
raise EasyBuildError("Failed to obtain required GitHub token for user '%s'", self.options.github_user)
# make sure autopep8 is available when it needs to be
if self.options.dump_autopep8:
if not HAVE_AUTOPEP8:
raise EasyBuildError("Python 'autopep8' module required to reformat dumped easyconfigs as requested")
self._postprocess_external_modules_metadata()
self._postprocess_config()
示例9: setUp
def setUp(self):
(self.fd, self.logfn) = tempfile.mkstemp()
self.handle = os.fdopen(self.fd)
# set the test log format
fancylogger.setTestLogFormat()
# make new logger
fancylogger.logToFile(self.logfn)
# disable default ones (with default format)
fancylogger.disableDefaultHandlers()
示例10: setUp
def setUp(self):
(self.fd, self.logfn) = tempfile.mkstemp()
self.handle = os.fdopen(self.fd)
# set the test log format
fancylogger.setTestLogFormat()
# make new logger
fancylogger.logToFile(self.logfn)
# disable default ones (with default format)
fancylogger.disableDefaultHandlers()
self.orig_raise_exception_class = fancylogger.FancyLogger.RAISE_EXCEPTION_CLASS
self.orig_raise_exception_method = fancylogger.FancyLogger.RAISE_EXCEPTION_LOG_METHOD
示例11: init_logging
def init_logging(logfile, session, rstype):
"""Initiates the logfile"""
logfile = logfile % {
'session': session,
'rstype': rstype,
'pid': str(os.getpid())
}
logdir = os.path.dirname(logfile)
if logdir:
if not os.path.exists(logdir):
os.makedirs(logdir)
os.chmod(logdir, stat.S_IRWXU)
fancylogger.logToFile(logfile)
logger.info('Logging to file %s:' % logfile)
示例12: init_logging
def init_logging(logfile, logtostdout=False, testing=False):
"""Initialize logging."""
if logtostdout:
fancylogger.logToScreen(enable=True, stdout=True)
else:
if logfile is None:
# mkstemp returns (fd,filename), fd is from os.open, not regular open!
fd, logfile = tempfile.mkstemp(suffix='.log', prefix='easybuild-')
os.close(fd)
fancylogger.logToFile(logfile)
print_msg('temporary log file in case of crash %s' % (logfile), log=None, silent=testing)
log = fancylogger.getLogger(fname=False)
return log, logfile
示例13: __init__
def __init__(self, hostname, port, log_dir, filename, pidfile):
"""Constructor"""
stdin = '/dev/null'
stdout = os.path.join(log_dir, 'logging_error.log')
stderr = os.path.join(log_dir, 'logging_error.log')
Daemon.__init__(self, pidfile, stdin, stdout, stderr)
self.hostname = hostname
self.port = port
#Set up logging
# get logger, we will log to file
fancylogger.logToScreen(False)
# we want to log absolutely everything that's comming at us
fancylogger.setLogLevel(0)
self.logfile = os.path.join(log_dir, filename)
fancylogger.logToFile(self.logfile)
self.logger = fancylogger.getLogger()
self.socket_ = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
示例14: make_worker_log
def make_worker_log(name, debug=False, logfn_name=None, disable_defaulthandlers=False):
"""Make a basic log object"""
if logfn_name is None:
logfn_name = name
logfn = '/tmp/scoop_%s.log' % logfn_name
if debug:
setLogLevelDebug()
logToFile(logfn, name=name)
os.chmod(logfn, stat.S_IRUSR | stat.S_IWUSR)
if disable_defaulthandlers:
disableDefaultHandlers()
_log = getLogger(name=name)
return _log
示例15: test_log_levels
def test_log_levels(self):
"""Test whether log levels are respected"""
fd, tmplog = tempfile.mkstemp()
os.close(fd)
# set log format, for each regex searching
setLogFormat("%(name)s [%(levelname)s] :: %(message)s")
# test basic log methods
logToFile(tmplog, enable=True)
log = getLogger('test_easybuildlog')
for level in ['ERROR', 'WARNING', 'INFO', 'DEBUG', 'DEVEL']:
log.setLevelName(level)
log.raiseError = False
log.error('kaput')
log.deprecated('almost kaput', '10000000000000')
log.raiseError = True
log.warn('this is a warning')
log.info('fyi')
log.debug('gdb')
log.devel('tmi')
logToFile(tmplog, enable=False)
logtxt = read_file(tmplog)
root = getRootLoggerName()
devel_msg = r"%s.test_easybuildlog \[DEVEL\] :: tmi" % root
debug_msg = r"%s.test_easybuildlog \[DEBUG\] :: gdb" % root
info_msg = r"%s.test_easybuildlog \[INFO\] :: fyi" % root
warning_msg = r"%s.test_easybuildlog \[WARNING\] :: this is a warning" % root
deprecated_msg = r"%s.test_easybuildlog \[WARNING\] :: Deprecated functionality, .*: almost kaput; see .*" % root
error_msg = r"%s.test_easybuildlog \[ERROR\] :: EasyBuild crashed with an error \(at .* in .*\): kaput" % root
expected_logtxt = '\n'.join([
error_msg,
error_msg, deprecated_msg, warning_msg,
error_msg, deprecated_msg, warning_msg, info_msg,
error_msg, deprecated_msg, warning_msg, info_msg, debug_msg,
error_msg, deprecated_msg, warning_msg, info_msg, debug_msg, devel_msg,
])
logtxt_regex = re.compile(r'^%s' % expected_logtxt, re.M)
self.assertTrue(logtxt_regex.search(logtxt), "Pattern '%s' found in %s" % (logtxt_regex.pattern, logtxt))