Restarting syslog process on Mac OSX

I’ve been working on a project which uses syslog.
In order for the changes I made to syslog.conf to take effect I needed to restart the syslogd process

Yes I could restart my computer but that’s just too much effort.
I found a simple solution using the built in Mac Launch Daemons

~#: launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
~#: launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

syslogd will now have reloaded with any config changes you made.

Custom log files for your ruby on rails applications

Sometimes logging is required but putting the messages in the Rails log isn’t the answer.For example you need to see the progress of customers through your order placement cycle, you ideally need this seperate to any other in a custom log file?

There is a solution and it’s easy… To create an order progress log, simply create a new instance of Logger and pass it a File instance for your own logfile.
Create a new model which inherits from Logger

class OrderProgressLogger < Logger
  def format_message(severity, timestamp, progname, msg)
  "#{timestamp.to_formatted_s(:db)} #{severity} #{msg}\n"
  end
end

Create initializer called logs.rb in RAILS_ROOT/config/initializers with the following content:

order_progress_logfile = File.open("#{RAILS_ROOT}/log/order_progress.log", 'a')
order_progress_logfile.sync = true
ORDER_PROGRESS_LOG = OrderProcessLogger.new(order_progress_logfile)

After a restart of your mongrel or passenger ORDER_PROGRESS_LOG will be available through out your application.
You log to it just as you would DEFAULT_RAILS_LOGGER like so…

ORDER_PROGRESS_LOG.debug "Starting order placement method"
ORDER_PROGRESS_LOG.error "Could not create order record"