Class: Rex::Logging::Sinks::Flatfile

Inherits:
Object
  • Object
show all
Includes:
LogSink
Defined in:
lib/rex/logging/sinks/flatfile.rb

Overview

This class implements the LogSink interface and backs it against a file on disk.

Instance Method Summary collapse

Constructor Details

#initialize(file) ⇒ Flatfile

Creates a flatfile log sink instance that will be configured to log to the supplied file path.



20
21
22
# File 'lib/rex/logging/sinks/flatfile.rb', line 20

def initialize(file)
	self.fd = File.new(file, "a")
end

Instance Method Details

#cleanupObject

:nodoc:



24
25
26
# File 'lib/rex/logging/sinks/flatfile.rb', line 24

def cleanup # :nodoc:
	fd.close
end

#log(sev, src, level, msg, from) ⇒ Object

:nodoc:



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rex/logging/sinks/flatfile.rb', line 28

def log(sev, src, level, msg, from) # :nodoc:
	if (sev == LOG_RAW)
		fd.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
		fd.write("[#{get_current_timestamp}] [#{code}(#{level})] #{src}: #{msg}\n")
	end

	fd.flush
end