]> source.dussan.org Git - redmine.git/commitdiff
Always log scm stderr and makes the log file path configurable.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Jan 2013 12:04:23 +0000 (12:04 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Jan 2013 12:04:23 +0000 (12:04 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11209 e93f8b46-1217-0410-a6f0-8f06a7374b81

config/configuration.yml.example
lib/redmine/scm/adapters/abstract_adapter.rb

index 59527f874e3784642c017b8f2e26105879436bfd..4c14fa8f196be824d360f88098b68a5585543277 100644 (file)
@@ -133,6 +133,12 @@ default:
   scm_bazaar_command:
   scm_darcs_command:
 
+  # Absolute path to the scm commands errors (stderr) log file.
+  # The default is to log in the 'log' directory of your Redmine instance.
+  # Example:
+  # scm_stderr_log_file: /var/log/redmine_scm_stderr.log
+  scm_stderr_log_file:
+
   # Key used to encrypt sensitive data in the database (SCM and LDAP passwords).
   # If you don't want to enable data encryption, just leave it blank.
   # WARNING: losing/changing this key will make encrypted data unreadable.
index 4458baa7e3825bbf92eda1ab74404e1313e5e8ce..436d83bf422727f568a183688f4df4ad404308e9 100644 (file)
@@ -218,14 +218,19 @@ module Redmine
           Rails.logger
         end
 
+        # Path to the file where scm stderr output is logged
+        def self.stderr_log_file
+          @stderr_log_path ||=
+            Redmine::Configuration['scm_stderr_log_file'].presence ||
+            Rails.root.join("log/#{Rails.env}.scm.stderr.log").to_s
+        end
+
         def self.shellout(cmd, options = {}, &block)
           if logger && logger.debug?
             logger.debug "Shelling out: #{strip_credential(cmd)}"
           end
-          if Rails.env == 'development'
-            # Capture stderr when running in dev environment
-            cmd = "#{cmd} 2>>#{shell_quote(Rails.root.join('log/scm.stderr.log').to_s)}"
-          end
+          # Capture stderr in a log file
+          cmd = "#{cmd} 2>>#{shell_quote(stderr_log_file)}"
           begin
             mode = "r+"
             IO.popen(cmd, mode) do |io|