summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2005-08-10 03:19:11 +0000
committerLuke Kanies <luke@madstop.com>2005-08-10 03:19:11 +0000
commitadc10d8e82723615279ba3aa1eded52fdbcd0acd (patch)
tree15bbe2ed419555a87e3f28dd37dd1c9618e2f454 /lib
parentc7380c9d60fef68e2eb27c732d41eba7f6a54a27 (diff)
downloadpuppet-adc10d8e82723615279ba3aa1eded52fdbcd0acd.tar.gz
puppet-adc10d8e82723615279ba3aa1eded52fdbcd0acd.tar.xz
puppet-adc10d8e82723615279ba3aa1eded52fdbcd0acd.zip
setting up http to log to a separate file
git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@531 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib')
-rwxr-xr-xlib/puppet/daemon.rb23
-rw-r--r--lib/puppet/log.rb6
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/puppet/daemon.rb b/lib/puppet/daemon.rb
index b160d3eed..76b6cc829 100755
--- a/lib/puppet/daemon.rb
+++ b/lib/puppet/daemon.rb
@@ -5,6 +5,9 @@ require 'puppet'
module Puppet
module Daemon
def daemonize
+ unless Puppet[:logdest] == :file
+ Puppet.err "You must reset log destination before daemonizing"
+ end
if pid = fork()
Process.detach(pid)
exit(0)
@@ -16,11 +19,31 @@ module Puppet
$stdin.reopen "/dev/null"
$stdout.reopen "/dev/null", "a"
$stderr.reopen $stdin
+ Log.reopen
rescue => detail
+ File.open("/tmp/daemonout", "w") { |f|
+ f.puts "Could not start %s: %s" % [$0, detail]
+ }
Puppet.err "Could not start %s: %s" % [$0, detail]
exit(12)
end
end
+
+ def httplog
+ args = []
+ # yuck; separate http logs
+ if self.is_a?(Puppet::Server)
+ args << Puppet[:masterhttplog]
+ else
+ args << Puppet[:httplog]
+ end
+ if Puppet[:debug]
+ args << WEBrick::Log::DEBUG
+ end
+ log = WEBrick::Log.new(*args)
+
+ return log
+ end
end
end
diff --git a/lib/puppet/log.rb b/lib/puppet/log.rb
index 76308c735..5d7f867ab 100644
--- a/lib/puppet/log.rb
+++ b/lib/puppet/log.rb
@@ -161,6 +161,12 @@ module Puppet
end
end
+ def Log.reopen
+ if @@logfile
+ Log.destination = @@logpath
+ end
+ end
+
attr_accessor :level, :message, :source, :time
def initialize(args)