summaryrefslogtreecommitdiff
path: root/lib/chef/loggers/syslog_logger.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/loggers/syslog_logger.rb')
-rw-r--r--lib/chef/loggers/syslog_logger.rb65
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/chef/loggers/syslog_logger.rb b/lib/chef/loggers/syslog_logger.rb
new file mode 100644
index 0000000000..e52a1bf847
--- /dev/null
+++ b/lib/chef/loggers/syslog_logger.rb
@@ -0,0 +1,65 @@
+require 'syslog'
+require 'logger'
+
+class Chef
+ module Loggers
+ class SyslogLogger < Logger
+
+ def initialize(args)
+ @progname = 'chef-client'
+ @level = DEBUG
+ @facility = SysLog::LOG_USER
+ @formatter = nil
+ @logdev = STDOUT
+ unless Syslog.opened?
+ @logdev = Syslog.open(progname, nil, facility)
+ end
+ end
+ end
+
+ # class LocklessLogDevice < Logger::LogDevice
+ # def initialize(log = nil)
+ # @dev = @filename = @shift_age = @shift_size = nil
+ # if log.respond_to?(:write) and log.respond_to?(:close)
+ # @dev = log
+ # else
+ # @dev = open_logfile(log)
+ # @filename = log
+ # end
+ # @dev.sync = true
+ # end
+ #
+ # def write(message)
+ # @dev.write(message)
+ # rescue Exception => ignored
+ # warn("log writing failed. #{ignored}")
+ # end
+ #
+ # def close
+ # @dev.close rescue nil
+ # end
+ #
+ # private
+ #
+ # def open_logfile(filename)
+ # if (FileTest.exist?(filename))
+ # open(filename, (File::WRONLY | File::APPEND))
+ # else
+ # create_logfile(filename)
+ # end
+ # end
+ #
+ # def create_logfile(filename)
+ # logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT))
+ # add_log_header(logdev)
+ # logdev
+ # end
+ #
+ # def add_log_header(file)
+ # file.write(
+ # "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
+ # )
+ # end
+ # end
+ end
+end