本文整理汇总了Python中qiita_db.logger.LogEntry类的典型用法代码示例。如果您正苦于以下问题:Python LogEntry类的具体用法?Python LogEntry怎么用?Python LogEntry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LogEntry类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: post
def post(self, analysis_id):
analysis_id = int(analysis_id.split("/")[0])
analysis_id_sent = int(self.get_argument('analysis_id'))
action = self.get_argument('action')
if analysis_id != analysis_id_sent or action != 'delete_analysis':
raise QiitaPetAuthorizationError(
self.current_user.id,
'analysis/results/%d-delete' % analysis_id)
analysis = Analysis(analysis_id)
analysis_name = analysis.name
check_analysis_access(self.current_user, analysis)
try:
Analysis.delete(analysis_id)
msg = ("Analysis <b><i>%s</i></b> has been deleted." % (
analysis_name))
level = "success"
except Exception as e:
e = str(e)
msg = ("Couldn't remove <b><i>%s</i></b> analysis: %s" % (
analysis_name, e))
level = "danger"
LogEntry.create('Runtime', "Couldn't remove analysis ID %d: %s" %
(analysis_id, e))
self.redirect(u"/analysis/show/?level=%s&message=%s" % (level, msg))
示例2: post
def post(self):
message = ""
level = ""
page = "lost_pass.html"
user_id = None
try:
user = User(self.get_argument("email"))
except QiitaDBUnknownIDError:
message = "ERROR: Unknown user."
level = "danger"
else:
user_id = user.id
user.generate_reset_code()
info = user.info
try:
send_email(user.id, "Qiita: Password Reset", "Please go to "
"the following URL to reset your password: "
"http://qiita.colorado.edu/auth/reset/%s" %
info["pass_reset_code"])
message = ("Check your email for the reset code.")
level = "success"
page = "index.html"
except Exception as e:
message = ("Unable to send email. Error has been registered. "
"Your password has not been reset.")
level = "danger"
LogEntry.create('Runtime', "Unable to send forgot password "
"email: %s" % str(e), info={'User': user.id})
self.render(page, user=user_id, message=message, level=level)
示例3: _generate_demultiplexed_fastq_demux
def _generate_demultiplexed_fastq_demux(self, mtime):
"""Modularity helper"""
# An artifact will hold only one file of type
# `preprocessed_demux`. Thus, we only use the first one
# (the only one present)
ar = self.artifact
demux = [path for _, path, ftype in ar.filepaths
if ftype == 'preprocessed_demux'][0]
demux_samples = set()
with open_file(demux) as demux_fh:
if not isinstance(demux_fh, File):
error_msg = (
"'%s' doesn't look like a demux file" % demux)
LogEntry.create('Runtime', error_msg)
raise EBISubmissionError(error_msg)
for s, i in to_per_sample_ascii(demux_fh,
self.prep_template.keys()):
sample_fp = self.sample_demux_fps[s]
wrote_sequences = False
with GzipFile(sample_fp, mode='w', mtime=mtime) as fh:
for record in i:
fh.write(record)
wrote_sequences = True
if wrote_sequences:
demux_samples.add(s)
else:
del(self.samples[s])
del(self.samples_prep[s])
del(self.sample_demux_fps[s])
remove(sample_fp)
return demux_samples
示例4: post
def post(self):
message = ""
level = ""
page = "lost_pass.html"
user_id = None
try:
user = User(self.get_argument("email"))
except QiitaDBUnknownIDError:
message = "ERROR: Unknown user."
level = "danger"
else:
user_id = user.id
user.generate_reset_code()
info = user.info
try:
send_email(user.id, "Qiita: Password Reset", "Please go to "
"the following URL to reset your password: \n"
"%s/auth/reset/%s \nYou "
"have 30 minutes from the time you requested a "
"reset to change your password. After this period, "
"you will have to request another reset." %
(qiita_config.base_url, info["pass_reset_code"]))
message = ("Check your email for the reset code.")
level = "success"
page = "index.html"
except Exception as e:
message = ("Unable to send email. Error has been registered. "
"Your password has not been reset.")
level = "danger"
LogEntry.create('Runtime', "Unable to send forgot password "
"email: %s" % str(e), info={'User': user.id})
self.render(page, user=user_id, message=message, level=level)
示例5: write_error
def write_error(self, status_code, **kwargs):
'''Overrides the error page created by Tornado'''
if status_code == 404:
# just use the 404 page as the error
self.render("404.html")
return
is_admin = False
user = self.get_current_user()
if user:
try:
is_admin = user.level == 'admin'
except:
# Any issue with this check leaves default as not admin
pass
# render error page
self.render('error.html', status_code=status_code, is_admin=is_admin)
# log the error
from traceback import format_exception
exc_info = kwargs["exc_info"]
trace_info = ''.join(["%s\n" % line for line in
format_exception(*exc_info)])
req_dict = self.request.__dict__
# must trim body to 1024 chars to prevent huge error messages
req_dict['body'] = req_dict.get('body', '')[:1024]
request_info = ''.join(["<strong>%s</strong>: %s\n" %
(k, req_dict[k]) for k in
req_dict.keys()])
error = exc_info[1]
LogEntry.create(
'Runtime',
'ERROR:\n%s\nTRACE:\n%s\nHTTP INFO:\n%s\n' %
(error, trace_info, request_info))
示例6: write_error
def write_error(self, status_code, **kwargs):
'''Overrides the error page created by Tornado'''
if status_code == 404:
# just use the 404 page as the error
self.render("404.html", user=self.current_user)
return
if self.current_user:
is_admin = User(self.current_user).level == 'admin'
else:
is_admin = False
# render error page
self.render('error.html', user=self.current_user,
status_code=status_code, is_admin=is_admin)
# log the error
from traceback import format_exception
exc_info = kwargs["exc_info"]
trace_info = ''.join(["%s\n" % line for line in
format_exception(*exc_info)])
request_info = ''.join(["<strong>%s</strong>: %s\n" %
(k, self.request.__dict__[k]) for k in
self.request.__dict__.keys()])
error = exc_info[1]
LogEntry.create(
'Runtime',
'ERROR:\n%s\nTRACE:\n%s\nHTTP INFO:\n%s\n' %
(error, trace_info, request_info))
示例7: get_filepaths
def get_filepaths(self, conn_handler=None):
r"""Retrieves the list of (filepath_id, filepath)"""
# Check that this function has been called from a subclass
self._check_subclass()
# Check if the connection handler has been provided. Create a new
# one if not.
conn_handler = conn_handler if conn_handler else SQLConnectionHandler()
if self._table == 'required_sample_info':
table = 'sample_template_filepath'
column = 'study_id'
elif self._table == 'common_prep_info':
table = 'prep_template_filepath'
column = 'prep_template_id'
else:
raise QiitaDBNotImplementedError(
'get_filepath for %s' % self._table)
try:
filepath_ids = conn_handler.execute_fetchall(
"SELECT filepath_id, filepath FROM qiita.filepath WHERE "
"filepath_id IN (SELECT filepath_id FROM qiita.{0} WHERE "
"{1}=%s) ORDER BY filepath_id DESC".format(table, column),
(self.id, ))
except Exception as e:
LogEntry.create('Runtime', str(e),
info={self.__class__.__name__: self.id})
raise e
_, fb = get_mountpoint('templates', conn_handler)[0]
base_fp = partial(join, fb)
return [(fpid, base_fp(fp)) for fpid, fp in filepath_ids]
示例8: get_filepaths
def get_filepaths(self):
r"""Retrieves the list of (filepath_id, filepath)"""
# Check that this function has been called from a subclass
self._check_subclass()
# Check if the connection handler has been provided. Create a new
# one if not.
conn_handler = SQLConnectionHandler()
try:
filepath_ids = conn_handler.execute_fetchall(
"SELECT filepath_id, filepath FROM qiita.filepath WHERE "
"filepath_id IN (SELECT filepath_id FROM qiita.{0} WHERE "
"{1}=%s) ORDER BY filepath_id DESC".format(
self._filepath_table, self._id_column),
(self.id, ))
except Exception as e:
LogEntry.create('Runtime', str(e),
info={self.__class__.__name__: self.id})
raise e
_, fb = get_mountpoint('templates')[0]
base_fp = partial(join, fb)
return [(fpid, base_fp(fp)) for fpid, fp in filepath_ids]
示例9: test_create_log_entry
def test_create_log_entry(self):
""""""
log_entry = LogEntry.create(2, 'runtime message')
log_entry = LogEntry.create(3, 'fatal message', info={1: 2})
log_entry = LogEntry.create(1, 'warning message', info={9: 0})
with self.assertRaises(QiitaDBExecutionError):
# This severity level does not exist in the test schema
log_entry = LogEntry.create(4, 'warning message', info={9: 0})
示例10: _failure_callback
def _failure_callback(self, msg=None):
"""Callback to execute in case that any of the job nodes failed
Need to change the preprocessed data process status to 'failed'
"""
self.preprocessed_data.processing_status = 'failed: %s' % msg
LogEntry.create('Fatal', msg,
info={'preprocessed_data': self.preprocessed_data.id})
示例11: _failure_callback
def _failure_callback(self, msg=None):
"""Executed if something fails"""
# set the analysis to errored
self.analysis.status = 'error'
if self._update_status is not None:
self._update_status("Failed")
# set any jobs to errored if they didn't execute
for job in self.analysis.jobs:
if job.status not in {'error', 'completed'}:
job.status = 'error'
LogEntry.create('Runtime', msg, info={'analysis': self.analysis.id})
示例12: get
def get(self, ignore):
user = self.get_argument('user')
query = self.get_argument('query')
echo = int(self.get_argument('sEcho'))
if user != self.current_user.id:
raise HTTPError(403, 'Unauthorized search!')
if query:
# Search for samples matching the query
search = QiitaStudySearch()
try:
search(query, self.current_user)
study_proc, proc_samples, _ = search.filter_by_processed_data()
except ParseException:
self.clear()
self.set_status(400)
self.write('Malformed search query. Please read "search help" '
'and try again.')
return
except QiitaDBIncompatibleDatatypeError as e:
self.clear()
self.set_status(400)
searchmsg = ''.join(e)
self.write(searchmsg)
return
except Exception as e:
# catch any other error as generic server error
self.clear()
self.set_status(500)
self.write("Server error during search. Please try again "
"later")
LogEntry.create('Runtime', str(e),
info={'User': self.current_user.id,
'query': query})
return
else:
study_proc = proc_samples = None
info = _build_study_info(self.current_user, study_proc=study_proc,
proc_samples=proc_samples)
# build the table json
results = {
"sEcho": echo,
"iTotalRecords": len(info),
"iTotalDisplayRecords": len(info),
"aaData": info
}
# return the json in compact form to save transmit size
self.write(dumps(results, separators=(',', ':')))
示例13: post
def post(self):
self.check_access()
numentries = int(self.get_argument("numrecords"))
if numentries <= 0:
numentries = 100
logentries = LogEntry.newest_records(numentries)
self.render("error_log.html", logentries=logentries)
示例14: test_time_property
def test_time_property(self):
""""""
sql = "SELECT localtimestamp"
before = self.conn_handler.execute_fetchone(sql)[0]
log_entry = LogEntry.create('Warning', 'warning test', info=None)
after = self.conn_handler.execute_fetchone(sql)[0]
self.assertTrue(before < log_entry.time < after)
示例15: post
def post(self):
numentries = int(self.get_argument("numrecords"))
if numentries < 0:
numentries = 100
logentries = LogEntry.newest_records(numentries)
self.render("error_log.html", logentries=logentries,
user=self.current_user)