From fb7be672fa24fc6cc3f0c6a26a4dc3106065782a Mon Sep 17 00:00:00 2001 From: Guillaume DOTT Date: Tue, 26 Nov 2013 15:58:59 +0100 Subject: [PATCH] Add option to forward log messages to syslog --- lib/smsd.rb | 2 ++ lib/smsd/cli.rb | 17 ++++++++++++----- lib/smsd/cli/options.rb | 4 ++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/smsd.rb b/lib/smsd.rb index 72184aa..82d9b31 100644 --- a/lib/smsd.rb +++ b/lib/smsd.rb @@ -1,3 +1,5 @@ +require 'syslog/logger' + require 'smsd/version' require 'smsd/cli' require 'smsd/cli/options' diff --git a/lib/smsd/cli.rb b/lib/smsd/cli.rb index 5155e4c..0ffd7d0 100644 --- a/lib/smsd/cli.rb +++ b/lib/smsd/cli.rb @@ -13,6 +13,9 @@ module SMSd init_logger @modem = Biju::Hayes.new(options[:modem], pin: options[:pin]) + rescue Errno::ENOENT => e + logger.warn e.message + exit end def run @@ -34,12 +37,16 @@ module SMSd private def init_logger - @logger = Logger.new( - Util::MultiIO.new(STDOUT, - File.open(@options[:logfile] || 'smsd.log', 'a'))) + if @options[:syslog] + @logger = Syslog::Logger.new($PROGRAM_NAME) + else + @logger = Logger.new( + Util::MultiIO.new(STDOUT, + File.open(@options[:logfile] || 'smsd.log', 'a'))) - logger.formatter = proc do |severity, datetime, progrname, msg| - "#{$PROGRAM_NAME}: #{datetime} [#{severity}] #{msg}\n" + logger.formatter = proc do |severity, datetime, progrname, msg| + "#{$PROGRAM_NAME}: #{datetime} [#{severity}] #{msg}\n" + end end end diff --git a/lib/smsd/cli/options.rb b/lib/smsd/cli/options.rb index 26104e5..0e18041 100644 --- a/lib/smsd/cli/options.rb +++ b/lib/smsd/cli/options.rb @@ -21,6 +21,10 @@ module SMSd options[:logfile] = logfile end + opts.on('-s', '--[no-]syslog', 'Use syslog as logger') do |syslog| + options[:syslog] = syslog + end + opts.on('-p', '--pin PIN', 'Specify the SIM PIN') do |pin| options[:pin] = pin end