我已经安装了Subversion作为Apache模块,它已经安装并且工作得很好。 唯一的问题是,我得到所有的SVN的东西(如PROPFIND,OPTIONS等)logging到相同的.LOG文件作为正常的网页访问。 我想弄清楚如何让SVN模块报告到一个自定义的日志文件。
这是加载SVN模块的Apache conf文件的一部分。 我试着用CustomLog指令来做(如底部所示),但是没有奏效。
################################################ #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 ################################################
有任何想法吗?
非常感谢。
除了日志path不同从* nix到Windows,你所拥有的正是我所configuration的,并在各种服务器上工作 – 可能是SVN的行动是不是进入env的窗口? 作为解决方法,您可以尝试:
SetEnvIf Request_URI "^/svn/*" mysvn CustomLog "C:/Logs/Apache/SVN.log" combined env=mysvn
这显然不会像logging%{SVN-ACTION}那样友好,但它会将所有请求分割成/ svn到自己的日志。
那么我明白了。 经过大量的search(发现其他几个人要求同样的事情,但没有达到我预期的那么多),我想出了这个解决scheme。 在观看演出的过程中,在广告期间,我开始思考如何将Subversion从networking服务器完全分离出来(就像在一个单独的服务器上一样)。 然后我想知道为什么Subversion条目泛滥的Web服务器日志,而我的其他VirtualHosts不(他们正在使用自己的日志所需)。 然后它打我:我有SVN设置在主Web服务器,而不是一个虚拟主机! 这就是答案。
要让Subversionlogin到自己的LOG文件中,而不是淹没主Apache日志文件,只需将SVN指令(例如Location …)放在它自己的专用虚拟主机中即可。
这样,我就可以通过SVN客户端连接到SVN虚拟主机,并通过Web浏览器连接到Web服务器 。 咄。 🙂这么简单; 没有黑客,没有解决办法,什么都没有。 很奇怪为什么把SVN的位置放在虚拟主机上似乎没有多less例子 – 我只看到一个! 几十个例子。
(当然,如果你试图用SVN客户端连接它,主要的日志文件仍然会得到OPTIONS,PROPFIND等条目,但这是正确的行为。)
这里是一个例子:
<VirtualHost 127.200.200.200:80> <Directory "C:/Subversion/Repositories/"> Options Indexes Includes Order Deny,Allow Allow from all </Directory> ServerName svn ServerAdmin [email protected] DocumentRoot "C:/Subversion/Repositories/" ErrorLog "C:/Logs/SVN/error.log" CustomLog "C:/Logs/SVN/access.log" common CustomLog "C:/Logs/SVN/referer.log" referer CustomLog "C:/Logs/SVN/agent.log" agent LoadModule dav_svn_module "C:/SVN/bin/mod_dav_svn.so" LoadModule authz_svn_module "C:/SVN/bin/mod_authz_svn.so" <Location /svn/> DAV svn SVNParentPath "C:/Subversion/" SVNListParentPath on SVNPathAuthz off AuthType Basic AuthName "My Subversion Repositories" AuthUserFile "C:/Subversion/passwd" Require valid-user AuthzSVNAccessFile "C:/Subversion/acl" </Location> </VirtualHost>
你有它。 现在我想知道是否可以追查那些提出这个问题的人