def open_log(log, opts={})
begin
opts = {:uid => self.uid, :gid => self.gid}.merge(opts)
begin
parent_dir = File.dirname(log)
warn "#{$0}: Creating directory #{parent_dir}" if $VERBOSE
Symbiosis::Utils.mkdir_p(parent_dir, :uid => opts[:uid], :gid => self.gid, :mode => 0755)
rescue Errno::EEXIST
end
warn "#{$0}: Opening log file #{log}" if $VERBOSE
filehandle = Symbiosis::Utils.safe_open(log, "a+", :mode => 0644, :uid => opts[:uid], :gid => opts[:gid])
filehandle.sync = opts[:sync]
rescue StandardError => err
filehandle = nil
warn "#{$0}: Caught #{err}" if $VERBOSE
end
filehandle
end