Files
metasploit-gs/lib/rex/logging/sinks/stderr.rb
T
Brent Cook ca5bc94ccf kill never unused 'from' argument in library logs
This avoids computing a stack trace on every single log message
that is never used in any of the logging sinks. This is one of the
number one profiled memory allocation/deallocation events in Metasploit
as shown with memory_profiler.
2019-12-02 09:03:58 -06:00

45 lines
701 B
Ruby

# -*- coding: binary -*-
module Rex
module Logging
module Sinks
###
#
# This class implements the LogSink interface and backs it against stderr
###
class Stderr
include Rex::Logging::LogSink
#
# Writes log data to stderr
#
def log(sev, src, level, msg) # :nodoc:
if (sev == LOG_RAW)
$stderr.write(msg)
else
code = 'i'
case sev
when LOG_DEBUG
code = 'd'
when LOG_ERROR
code = 'e'
when LOG_INFO
code = 'i'
when LOG_WARN
code = 'w'
end
$stderr.write("[#{get_current_timestamp}] [#{code}(#{level})] #{src}: #{msg}\n")
end
$stderr.flush
end
protected
end
end end end