Svn – Getting Subversion Apache Module to use a CustomLog

apache-2.2log-filesloggingsvn

I’ve got Subversion installed as an Apache module and it is set up and works just fine. The only problem is that I get all of the SVN stuff (eg PROPFIND, OPTIONS, etc.) logged to the same .LOG file as normal web accesses. I am trying to figure out how to get the SVN module to report to a custom log file.

Here is the part of my Apache conf file that loads the SVN module. I tried doing it with the CustomLog directive (as seen at the bottom), but that did not work.

################################################
#Subversion modules
LoadModule  dav_svn_module    "C:/SVN/bin/mod_dav_svn.so"
LoadModule  authz_svn_module  "C:/SVN/bin/mod_authz_svn.so"

# Configure Subversion repository
# This configures Apache so that all your Subversion repositories
# are available at http://myserver/svn/[repositoryName]
# The access is restricted to known users/passwords.
<Location             /svn/>
  DAV                 svn
  SVNIndexXSLT        "/svnindex.xsl"
  SVNParentPath       "C:/SVNRep/Repository/"
  SVNListParentPath   on
# SVNPath             "C:/SVNRep/Repository/" #for single repository 
  SVNPathAuthz        off
# SVNMasterURI        http://localhost/svn/ #for write-through proxying
  AuthType            Basic
  AuthName            "My Subversion repositories"
  AuthUserFile        "C:/SVNRep/passwd"
  Require             valid-user
  AuthzSVNAccessFile  "C:/SVNRep/acl"
</Location>
CustomLog "C:/Logs/Apache/SVN.log"  "%t %u %{SVN-ACTION}e" env=SVN-ACTION
################################################

Any ideas?

Thanks a lot.

Best Answer

Except for the log path different from *nix to Windows what you have is exactly what I have configured and works on various servers - possibly the SVN-ACTION isn't making its way into env on windows? As a workaround you could try:

SetEnvIf Request_URI "^/svn/*" mysvn
CustomLog "C:/Logs/Apache/SVN.log" combined env=mysvn

This obviously won't be as friendly as logging %{SVN-ACTION}e but it will split all requests to /svn to their own log.