ACE日志服务器

 

       

    林(2011-1-28

 

一、日志服务器的架构:

日志服务器由三部分组成:

a)         应用程序日志库

作用:输出日志。

依赖库:ACE

b)        客户端日志DAEMON

作用:收集同一台服务器上所有应用程序的日志,并转发到指定的日志服务器上。

组件:

配置服务管理器(windows下ACE_wrappers/netsvcs/servers/ace_netsvcs.exe, linux下ACE_wrappers/netsvcs/servers/main

配置服务管理器配置文件(svc.conf

日志服务库(netsvcs

         依赖库:

                ACEnetsvcspthread

         注意,在linux下配置文件中配置 ACEnetsvcs库时,请使用绝对路径

c)        日志服务器

作用:存储各应用程序生成的日志。以便以后查询。

组件:

配置服务管理器(windows下ACE_wrappers/netsvcs/servers/ace_netsvcs.exe, linux下ACE_wrappers/netsvcs/servers/main

配置服务管理器配置文件(svc.conf

日志服务库(netsvcs

依赖库:

                ACEnetsvcspthread

         注意,在linux下配置文件中配置 ACEnetsvcs库时,请使用绝对路径

 

 

二、使用:

1)        服务器的配置:

在日志服务器上,配置服务管理器的配置文件,加入日志策略服务和日志服务。

a)        日志策略服务:

dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() " -f STDERR|VERBOSE"

“”中的为参数,可以设置日志的输出位置,详细程序等策略。参数如下:

/**

   * Parse arguments provided in svc.conf file.

   * @arg '-f' Pass in the flags (such as OSTREAM, STDERR, LOGGER, VERBOSE,

   *           SILENT, VERBOSE_LITE) used to control logging.

   * @arg '-i' The interval (in seconds) at which the logfile size is sampled

   *           (default is 0, i.e., do not sample by default).

   * @arg '-k' Set the logging key.

   * @arg '-m' Maximum logfile size in Kbytes.

   * @arg '-n' Set the program name for the %n format specifier.

   * @arg '-N' The maximum number of logfiles that we want created.

   * @arg '-o' Specifies that we want the no standard logfiles ordering

   *           (fastest processing in handle_timeout()).  Default is not to

   *           order logfiles.

   * @arg '-p' Pass in the process-wide priorities to either enable (e.g.,

   *           DEBUG, INFO, WARNING, NOTICE, ERROR, CRITICAL, ALERT,

   *           EMERGENCY) or to disable (e.g., ~DEBUG, ~INFO, ~WARNING,

   *           ~NOTICE, ~ERROR, ~CRITICAL, ~ALERT, ~EMERGENCY).

   * @arg '-s' Ensure that the OSTREAM flag is set and log to the @a filename.

   * @arg '-t' Pass in the thread-wide priorities to either enable (e.g.,

   *           DEBUG, INFO, WARNING, NOTICE, ERROR, CRITICAL, ALERT,

   *           EMERGENCY) or to disable (e.g., ~DEBUG, ~INFO, ~WARNING,

   *           ~NOTICE, ~ERROR, ~CRITICAL, ~ALERT, ~EMERGENCY).

   * @arg '-w' Cause the logfile to be wiped out, both on startup and on

   *           reconfiguration.

   */

b)        日志服务:

dynamic Thr_Server_Logging_Service Service_Object * netsvcs:_make_ACE_Thr_Server_Logging_Acceptor() active "-p 20020"

 

“”中为日志服务的参数:

-p  :日志服务器的监听端口号

 

2)        客户端日志DAEMON

在应用服务器上配置服务管理器(ismg_daemon)的配置文件,加入客户端日志

DAEMON服务。

dynamic Client_Logging_Service Service_Object * netsvcs:_make_ACE_Client_Logging_Acceptor() active "-p 20020 h 10.10.1.69"

 

“”中为客户端日志DAEMON参数:

-p :日志服务器的端口

-h:日志服务器的IP地址

-l:本机IP

-k: 设置 the logging key.即本地的监听IP和端口

(默认:

# if !defined (ACE_DEFAULT_LOGGER_KEY)

#   if (ACE_HAS_STREAM_LOG_MSG_IPC == 1)

#     define ACE_DEFAULT_LOGGER_KEY ACE_TEXT ("/tmp/server_daemon")

#   else

#     define ACE_DEFAULT_LOGGER_KEY ACE_TEXT ("localhost:20012")

#   endif /* ACE_HAS_STREAM_LOG_MSG_IPC==1 */

# endif /* ACE_DEFAULT_LOGGER_KEY */

3)        应用程序输出日志:

你可以直接使用ACE日志宏进行日志输出,详见《ACE日志库使用》。

一般我们在开发中常使用三种级别的日志输出(调试级别、错误级别、信息级别),所以我定义了三个宏:

LOG_DEBUG(X, …)

LOG_ERROR(X, …)

LOG_INFO(X, …)

如果你不是使用配置服务管理器,为了能使用你的程序可以按指定的策略进行输出。为此定义了一个初始化宏。

LOG_INIT(argn, argv)

你可以按前面策略服务所讲的参数进行设置。如果你要自定日志输出策略,你必须在程序启动时调用这个宏进行日志策略初始化。默认的日志输出是直接输出到stderr

 

三、日志输出格式约定

a)         信息级别:

各元互素分隔符用 :  分隔,第一个元素为此信息名字

MONITOR:clients:0:close:0:srv_handler:0:recvPackage:0:error:0:heart:0:sends:0:packages:0:resend:0:responsion:0:error:0:buffer:0

b)        错误级别:

请输出错误返回码,和错误内容,第一个元素为此模块名字

c)        调试级别:

输出调试内容,第一个元素为此模块名字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值