带有日志文件的Apache别名
我想知道是否有可能在Apache中的虚拟主机上创建一个带有日志的别名 这就是我到目前为止所做的:带有日志文件的Apache别名,apache,Apache,我想知道是否有可能在Apache中的虚拟主机上创建一个带有日志的别名 这就是我到目前为止所做的: <VirtualHost www.mycompany.com> ServerName www.mycompany.com DirectoryIndex Company_Home.html ServerAdmin siasagenbag@mycompany.com DocumentRoot C:/Project/Sites/Company/Main/htdo
<VirtualHost www.mycompany.com>
ServerName www.mycompany.com
DirectoryIndex Company_Home.html
ServerAdmin siasagenbag@mycompany.com
DocumentRoot C:/Project/Sites/Company/Main/htdocs
ErrorLog C:/Project/Sites/Company/Main/logs/Error_log.log
TransferLog C:/Project/Sites/Company/Main/logs/Access_log.log
Alias /public C:/Project/Sites/Company/Sub/Public/htdocs/Public.html
Alias /stage C:/Project/Sites/Company/Sub/Stage/htdocs/Stage.html
Alias /development C:/Project/Sites/Company/Sub/Development/htdocs/Development.html
服务器名www.mycompany.com
目录索引公司_Home.html
服务器管理员siasagenbag@mycompany.com
DocumentRoot C:/Project/Sites/Company/Main/htdocs
ErrorLog C:/Project/Sites/Company/Main/logs/Error\u log.log
传输日志C:/Project/Sites/Company/Main/logs/Access\u log.log
别名/public:/Project/Sites/Company/Sub/public/htdocs/public.html
别名/stage C:/Project/Sites/Company/Sub/stage/htdocs/stage.html
别名/development C:/Project/Sites/Company/Sub/development/htdocs/development.html
我想在所有3个别名上创建访问和错误日志。不可能使用文件名,因为指令
ErrorLog
和TransferLog
都是服务器或虚拟主机级别,因此无法为特定别名指定
但是,您可能可以通过使用apache将日志通过管道传输到的进程来获得所需的行为,例如:
ErrorLog |C:/Project/Sites/Company/error_logger.exe
TransferLog |C:/Project/Sites/Company/transfer_logger.exe
每个程序都将由apache启动,并在其标准输入上接收日志行。您可以在程序中自由地使用这些字符串执行任何操作
这里要解决的主要问题是强制日志格式包含别名信息,以便程序可以将正确的日志行重定向到相应的文件
TransferLog很容易获得此信息,因为它将作为正在记录的URL的前导部分(日志格式中的(%U标志))可用
对于错误日志来说,这要困难得多,甚至可能是不可能的,因为各种模块(如PHP)可以生成完全缺少URL信息的错误消息
编辑:
作为记录,Apache 2.3.9引入了一个新的指令,允许大量定制错误日志行,但是,%U标志出乎意料地不存在,因此在这里对您没有帮助。哦,好的,这正是我想要的,谢谢小天狼星