中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > 服务器 > Web服务器
apache中与日志有关的模块
作者:未知 时间:2005-09-13 17:24 出处:ChinaUnix.net 责编:chinaitpower
              摘要:apache中与日志有关的模块

与日志相关的模块


软件
mod_log_sql 把日志记到mysql中的模块  http://www.apache.org
apache  web服务器    http://www.apache.org 
 
准备工作(安装apache)
./configure --prefix=/www/apache --disable-module=all --enable-module=alias 
--enable-module=access --enable-module=auth --enable-module=log_config  --enable-module=log_agen 
--enable-module=log_common 
--enable-module=dir --enable-module=mime --enable-module=so
make
make install


Core模块,提供ErrorLog,LogLevel
ErrorLog /www/apache/logs/error_log #定义error log的存放位置
LogLevel warn  #定义error log的级别。只有满足级别的事件才被记录


log_config模块
LogFormat format [nickname]   #定义访问日志的格式
LogFormat "%{User-agent}i" agent    
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

LogFormat "%h %l %u %t \"%r\" %>s %b" common 
192.168.0.15 - - [26/Sep/2003:18:22:09 +0800] "GET / HTTP/1.1" 404 272

LogFormat中参数含义
   %a    访问者ip
   %A    local ip
   %B    不包括HTTP 头发送的数据字节数
   %b     以CLF格式表示的发送字节数
   %c     在response后的连接状态
   %f     请求的文件名
   %h     客户端host
   %H     请求使用的协议
   %m     请求的方法get,put...
   %P     提供服务的端口
   %p     为请求提供服务的子进程ID
   %r     请求的第一行
   %s     status/
   %u     remote user
   %U     请求的URL path
CustomLog  file|pipe  format
CustomLog  logs/access.log common
CustomLog  "|/bin/gzip -c >> logs/access.log.gz" common

mod_log_mysql模块
这个apache模块允许你把日志记录到mysql数据库中去。Combined Log Format格式会被记录到数据库中。
DSO方式安装该模块
# tar zxf mod_log_sql.tar.gz -C /usr/local/src  
# cd /usr/local/src/mod_log_sql 
修改Makefile文件,修改下面的路径信息以符合你的安装
APACHEINSTALLED:  
APACHEHEADERS: 用'locate httpd.h'查找路径
MYSQLLIBRARIES: 用'locate libmysqlclient.so'查找路径 
MYSQLHEADERS: 用'locate mysql.h'查找路径
#make dso
#make dsoinstall

为使用mod_log_mysql准备mysql
创建数据库accesslog
mysqladmin -u username -p create accesslog
mysql accesslog < /path/mod_log_sql/create_tables.sql
grant insert on accesslog.* to weblog@localhost identified by 'pass';


把下面两行加入httpd.conf
LoadModule sql_log_module libexec/mod_log_sql.so
AddModule mod_log_sql.c 
LogSQLLoginInfo localhost weblog pass
LogSQLDatabase accesslog
LogSQLSocketFile /tmp/mysql.sock
LogSQLTransferLogTable access_log

重起服务
#apachectl restart   
ok!mod_log_sql的安装配置就到这里了。网站运行一段时间以后你可以从mysql数据库里获得访问日志了

 seacaptain 回复于:2003-09-27 21:07:06
挺好的没人看

 seacaptain 回复于:2003-09-28 11:42:52
log_agent,log_referer,log_common模块都可以由log_config中提供的LogFormart和CustomLog实现。这里就没有提到

 I-like 回复于:2003-09-28 12:27:29
怎么实现让Apache每天生成一个日志,都存在/var/log里!?

 seacaptain 回复于:2003-09-28 14:39:08
有很多方法了这里使用apache自带的工具
CustomLog "|/www/bin/rotatelogs /var/log/access_log 86400" common
这里86400单位是秒--正好一天。生成的日志文件为access_log.nnnn

 yanyp 回复于:2003-10-09 21:36:15
我就在看啊,很好,多谢

 allan0909 回复于:2004-02-18 09:45:00
[quote:f67aaf706d="seacaptain"]有很多方法了这里使用apache自带的工具
CustomLog "|/www/bin/rotatelogs /var/log/access_log 86400" common
这里86400单位是秒--正好一天。生成的日志文件为access_log.nnnn[/quote:f67aaf706d]
up一个老贴。。问个问题。。是不是把86400改变就能改变写log文件的周期??

 I-like 回复于:2004-04-15 10:32:45
这样当然没问题,我是想说生成日志文件和IIS的一样,带有日期标记的。有吗?

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有