| 
     
      
      
      From: Pat O'B. <obr...@gm...> - 2011-08-10 05:05:21
      
     
   | 
ok, changes made and ready for review:
Index: server.rb
===================================================================
--- server.rb   (revision 298)
+++ server.rb   (working copy)
@@ -24,14 +24,16 @@
     end
     @@configbase
   end
-
+
   @@auth_enabled = nil
   @@auth_deny_new_clients = nil
+  @@etchdebuglog = nil
   def self.read_config_file
     config_file = File.join(configbase, 'etchserver.conf')
     if File.exist?(config_file)
       auth_enabled = false
       auth_deny_new_clients = false
+      etchdebuglog = nil
       IO.foreach(config_file) do |line|
         # Skip blank lines and comments
         next if line =~ /^\s*$/
@@ -47,7 +49,11 @@
             auth_deny_new_clients = true
           end
         end
+        if line =~ /^\s*etchdebuglog\s*=\s*(.*)/
+          etchdebuglog = $1
+        end
       end
+      @@etchdebuglog = etchdebuglog
       @@auth_enabled = auth_enabled
       @@auth_deny_new_clients = auth_deny_new_clients
     end
@@ -203,12 +209,19 @@
     @facts = facts
     @tag = tag
     @debug = debug
-    @dlogger = Logger.new(File.join(Rails.configuration.root_path, 'log',
'etchdebug.log'))
+
+    if @@etchdebuglog
+      @dlogger = Logger.new(@@etchdebuglog)
+    else
+      @dlogger = Logger.new(File.join(Rails.configuration.root_path, 'log',
'etchdebug.log'))
+    end
+
     if debug
       @dlogger.level = Logger::DEBUG
     else
       @dlogger.level = Logger::INFO
     end
+
     @fqdn = @facts['fqdn']
     if !@fqdn
in regards to the ternary operators, I am pretty indifferent and more about
keeping the coding style in tact within a project so that's all fine with
me.
-pat
On Tue, Aug 9, 2011 at 5:01 PM, Jason Heiss <jh...@ap...> wrote:
> (Moving this to etch-devel, bcc'ing out etch-users)
>
> It looks like you're adopting a different syntax for your "etchdebuglog"
> from the accepted syntax for the existing config file entries.  E.g. the
> line for matching the "auth_enabled" option is:
>
> if line =~ /^\s*auth_enabled\s*=\s*(.*)/
>
> Whereas you have:
>
> if line =~ /^etchdebuglog:/
>
> I think we want to retain a common syntax.
>
> For the later half of your changes I personally find ternary operator
> syntax hard to read at a glance.  My wife tells me that's because I'm not a
> real developer, so shrug, but I have to stare at this a while to figure out
> what is going on:
>
> debug ? @dlogger.level = Logger::DEBUG : @dlogger.level = Logger::INFO
>
> Whereas this is obvious to me at a glance:
>
> if debug
>   @dlogger.level = Logger::DEBUG
> else
>   @dlogger.level = Logger::INFO
> end
>
> Maybe I'm special.
>
> Jason
>
> On Aug 8, 2011, at 11:40 PM, Pat O'Brien wrote:
>
> sounds good - how does this look:
>
> ---------------------------->%------------------------------
> wordup:etch pobrien$ svn diff
> Index: server.rb
> ===================================================================
> --- server.rb   (revision 298)
> +++ server.rb   (working copy)
> @@ -24,14 +24,16 @@
>      end
>      @@configbase
>    end
> -
> +
>    @@auth_enabled = nil
>    @@auth_deny_new_clients = nil
> +  @@etchdebuglog = nil
>    def self.read_config_file
>      config_file = File.join(configbase, 'etchserver.conf')
>      if File.exist?(config_file)
>        auth_enabled = false
>        auth_deny_new_clients = false
> +      etchdebuglog = nil
>        IO.foreach(config_file) do |line|
>          # Skip blank lines and comments
>          next if line =~ /^\s*$/
> @@ -47,7 +49,11 @@
>              auth_deny_new_clients = true
>            end
>          end
> +        if line =~ /^etchdebuglog:/
> +          etchdebuglog = line.split.pop
> +        end
>        end
> +      @@etchdebuglog = etchdebuglog
>        @@auth_enabled = auth_enabled
>        @@auth_deny_new_clients = auth_deny_new_clients
>      end
> @@ -203,12 +209,11 @@
>      @facts = facts
>      @tag = tag
>      @debug = debug
> -    @dlogger = Logger.new(File.join(Rails.configuration.root_path, 'log',
> 'etchdebug.log'))
> -    if debug
> -      @dlogger.level = Logger::DEBUG
> -    else
> -      @dlogger.level = Logger::INFO
> -    end
> +
> +    @@etchdebuglog ? @dlogger = Logger.new(@@etchdebuglog) :  @dlogger =
> Logger.new(File.join(Rails.configuration.root_path, 'log', 'etchdebug.log'))
> +
> +    debug ? @dlogger.level = Logger::DEBUG : @dlogger.level = Logger::INFO
> +
>      @fqdn = @facts['fqdn']
>
>      if !@fqdn
> ---------------------------->%------------------------------
>
> -pat
>
> On Mon, Aug 8, 2011 at 5:54 PM, Jason Heiss <jh...@ap...> wrote:
>
>> My thoughts:
>>
>> - Don't duplicate the logic of the self.read_config_file method, add your
>> option into the existing config file parsing in that method.
>>
>> - Rather than an option for a log directory (your "log_dir"), I'd vote for
>> an option that specifies the full path for this particular log file.  I.e.
>> "debuglog=/path/to/something" or similar.  I think giving a log directory
>> option is misleading, as most of the "etch server" logs are actually emitted
>> by Rails and the Ruby app server (unicorn or the like) and as such would
>> still end up in <rails root>/log even if the user specified a different log
>> directory in etchserver.conf.  The etch debug log is the only log file
>> emitted by the etch server code itself.
>>
>> Jason
>>
>> On Aug 7, 2011, at 11:45 PM, Pat O'Brien wrote:
>>
>> Well, I worked out a fix for this, although I am unsure if it's a good fix
>> or not.
>>
>> First, here is the diff:
>>
>> ------------------------------>%------------------------------
>> wordup:server pobrien$ svn diff
>> Index: lib/etch/server.rb
>> ===================================================================
>> --- lib/etch/server.rb  (revision 298)
>> +++ lib/etch/server.rb  (working copy)
>> @@ -203,12 +203,24 @@
>>      @facts = facts
>>      @tag = tag
>>      @debug = debug
>> -    @dlogger = Logger.new(File.join(Rails.configuration.root_path, 'log',
>> 'etchdebug.log'))
>> -    if debug
>> -      @dlogger.level = Logger::DEBUG
>> -    else
>> -      @dlogger.level = Logger::INFO
>> +    @log_dir = nil
>> +    config_file = File.join(Etch::Server.configbase, 'etchserver.conf')
>> +    if File.exist?(config_file)
>> +      IO.foreach(config_file) do |line|
>> +        # Skip blank lines and comments
>> +         next if line =~ /^\s*$/
>> +         next if line =~ /^\s*#/
>> +        line.chomp
>> +        if line =~ /^log_dir:/
>> +          @log_dir = line.split.pop
>> +        end
>> +      end
>>      end
>> +
>> +    @log_dir ? @dlogger = Logger.new(File.join(@log_dir,
>> 'etchdebug.log')) :  @dlogger =
>> Logger.new(File.join(Rails.configuration.root_path, 'log', 'etchdebug.log'))
>> +
>> +    debug ? @dlogger.level = Logger::DEBUG : @dlogger.level =
>> Logger::INFO
>> +
>>      @fqdn = @facts['fqdn']
>>
>>      if !@fqdn
>> ------------------------------>%------------------------------
>>
>> Here are my problems with the change: the first is that I'm not sure if
>> this config should go into <etchbase>/etchserver.conf or if it should be
>> within the RAILS_ROOT/config/ directory. This feels like something that
>> should be configured along with the rails app rather than in
>> /etc/etchserver, but from what I understand (and I am in no way, shape or
>> form versed in rails) in rails 2.x.x there is no generic config file to
>> handle something like this. There is a railscast (
>> http://railscasts.com/episodes/85-yaml-configuration-file) that touches
>> upon this, and they basically recommend RAILS_ROOT/config/config.yml along
>> with some other necessary changes to actually have the config file loaded.
>>
>> Second, it looks like the <etchbase>/etchserver.conf file is currently
>> only used to define two things:  @@auth_enabled and @@auth_deny_new_clients
>> = nil, and the way these are loaded is by parsing the config file the same
>> way I parse it for the log_dir setting. I would prefer etchserver.conf file
>> to be a YAML file and we could load it that way, but I haven't looked too
>> deeply as to what else this file is used for so I don't really want to make
>> any recommendations on how to change it.
>>
>> Third, I haven't looked hard enough to see whether or not anything else
>> references a log directory of any kind and because of my two issues above I
>> won't bother until there's a bit more discussion on it.
>>
>> Other than that the change works fine and behaves as you would expect it
>> to, your etchserver.conf file would look like this:
>>
>> log_dir: /whatever/directory/your/heart/desires
>>
>> -pat
>>
>>
>>
>>
>> On Sun, Aug 7, 2011 at 10:19 PM, Pat O'Brien <obr...@gm...>wrote:
>>
>>> I've never bothered to try this so I don't know if it's configurable or
>>> not. If it's not open a bug ticket and I'll take a look at it when I get
>>> some spare time this week.
>>>
>>> Just as a side note: my personal preference is to not have system logs
>>> end up in /var/log, but to each their own :)
>>>
>>> -pat
>>>
>>>
>>>
>>> On Wed, Aug 3, 2011 at 3:27 PM, Johnston, Nathaniel <
>>> Nat...@ca...> wrote:
>>>
>>>> Etch Mensches,
>>>>
>>>> I am not sure how best to do this, but I am trying to move my Etch logs
>>>> over to /var along with the other logfiles I have.  I noticed that on line
>>>> 205 of lib/etchserver.rb the etchdebug.log file is specified as:
>>>>
>>>> @dlogger = Logger.new(File.join(Rails.configuration.root_path, 'log',
>>>> 'etchdebug.log'))
>>>>
>>>> Is there a way that this could leverage the value of
>>>> config.log_path/paths.log or another configurable parameter so that we could
>>>> override the location of this file?
>>>>
>>>> --N.
>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
>>>> The must-attend event for mobile developers. Connect with experts.
>>>> Get tools for creating Super Apps. See the latest technologies.
>>>> Sessions, hands-on labs, demos & much more. Register early & save!
>>>> http://p.sf.net/sfu/rim-blackberry-1
>>>> _______________________________________________
>>>> etch-users mailing list
>>>> etc...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/etch-users
>>>>
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
>> The must-attend event for mobile developers. Connect with experts.
>> Get tools for creating Super Apps. See the latest technologies.
>> Sessions, hands-on labs, demos & much more. Register early & save!
>>
>> http://p.sf.net/sfu/rim-blackberry-1_______________________________________________
>> etch-users mailing list
>> etc...@li...
>> https://lists.sourceforge.net/lists/listinfo/etch-users
>>
>>
>>
>
>
 |