UBuntu 11.04上架设ACE日志服务器

来源:互联网 发布:linux关闭telnet服务 编辑:程序博客网 时间:2024/05/22 08:11
 下载源代码

下载源代码到/usr/local/src:
wget -c ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.tar.gz
tar -zxvf ACE-6.0.3.tar.gz
sudo chmod -R 777 ./ACE_wrappers/

安装需要的库

sudo apt-get install build-essential
sudo apt-get install libssl-dev
ln -s /usr/lib/libssl.so.0.9.8b /lib/libssl.so.0.9.8b
sudo apt-get install automake
sudo apt-get install libtool

用传统方式编译

两种方式我都编译过,经过实验,还是传统build方式靠谱,具体编译方法参考下文:
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html#unix
UBuntu下面的设置环境变量有所区别,可以预先在~/.bashrc文件中配置:
export ACE_ROOT=/usr/local/src/ACE_wrappers
export PATH="$ACE_ROOT/bin:$PATH"
export ACE_INCLUDE=/usr/local/include/ace
LD_LIBRARY_PATH=$ACE_ROOT/lib:/usr/lib
export LD_LIBRARY_PATH

然后运行source ~/.bashrc 生效。

注意在$ACE_ROOT/include/makeinclude/platform_macros.GNU文件里添加一行:
INSTALL_PREFIX = /usr

因为这些库安装在/usr目录下比/usr/local下方便其他程序使用。

make install的时候会提示缺少权限,将/usr/include,/use/share,/usr/lib目录权限放开,比如:
sudo chmod -R 777 /usr/include

最后执行make install(如果是UBuntu Desktop用户,不要使用sudo)

编译LogServer程序

cd /usr/local/src/ACE_wrappers/netsvcs make 在servers中将出现ace_netsvcs程序。

配置并运行日志服务器

假定日志服务器运行在192.168.30.16上,修改svc.conf文件,让其将日志写入到当前目录,文件名mm.log,其实就是修改第一行的策略配置 dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-w -s foobar -f VERBOSE|STDERR|OSTREAM -s mm.log"

配置并运行客户端代理服务

假定你的日志客户端位于192.168.30.19上,你首先需要运行一个netsvcs程序,但是配置文件修改一下,使它成为代理,将日志消息转发给30.16上的日志服务器。通过代理,可以避免过多的连接对日志服务器造成较大的压力。 那么看一下如何修改svc.conf文件。 首先注释掉下面一行,禁止它称为日志服务器: # dynamic Server_Logging_Service Service_Object * netsvcs:_make_ACE_Server_Logging_Acceptor() active "-p 20009"

然后在下面一行增加 -h 192.168.30.16,使得代理知道转发谁。 dynamic Client_Logging_Service Service_Object * netsvcs:_make_ACE_Client_Logging_Acceptor() active "-p 20009 -h 192.168.30.16"

测试客户端

在30.19上直接运行客户端程序,稍后就能看到日志出现在30.16服务器上。 chenshu@chenshu-ubuntu:/usr/local/src/ACE_wrappers/netsvcs/clients/Logger$ ./indirect_logging


禁用日志

有时候我们需要禁用日志,可以用下面的宏(在CMake中)

   add_definitions(-DACE_NLOGGING)



原创粉丝点击