在应用中集成KiwiSyslog建立Windows下的集中日志系统

前一段写的一篇“ 建立Windows下面的syslog日志服务器”介绍了使用KiwiSyslog的一些情况,提到了在应用中集成Klog(KiwiSyslog的一个实用客户端工具)的方法。本文特地对Klog的DLL方式进行了测试,并对接口进行了封装和简化,贴出来和大家分享一下。
 
首先,找到Klog的3个文件:Klog.dll Klog.lib kloglib.h(我的电脑上在安装目录C:/Program Files/KLOG/KLOGDLL_CPP下面)。
使用时,将kloglib.h加入你的工程,然后把klog.lib加入工程的链接库,Klog.dll放在运行程序的旁边。
 
再把这个文件加入你的工程:
/*
Klogobj.h
 
 Kiwi Logger v1.3
 Sample C++ Logger class. 
 Links implicitly with KLOG.LIB.
 Accesses KLOG.DLL at load-time.
*/
 
#include "kloglib.h"
 
class KLog
{
private :
    int   Kret ;             // Returned error code
    char Kerror [100];      // Returned error string
    HANDLE MyHdl ;
   
public:
   
    // Constructor. Initialise storage. Initialise the DLL.
    // Set the syslog host, port, IP protocol, and RFC header process name.
    KLog ( char * Sysloghost , char * Service , int Protocol , char * Processname )
    {
        Kret = 0;
        memset ( Kerror , 0, sizeof( Kerror ));
        MyHdl = KLogInitialise ();
        KLogSetHostAddress ( MyHdl , Sysloghost );
        KLogSetPortByService ( MyHdl , Service );
        KLogUseTCP ( MyHdl , Protocol );
        KLogSetProcessName ( MyHdl ,1, Processname );
 
        SetPriority ( "User" , "Notice" );
    }
   
    // Deconstructor. Do nothing.
    ~ KLog ()
    {
    }
   
    // Set the priority using facility names
    void SetPriority ( char * FacilityName , char * LevelName )
    {
        KLogSetMessageFacilityName ( MyHdl , FacilityName );
        KLogSetMessageLevelName ( MyHdl , LevelName );
    }
   
    // Set the message
    void SetMessage ( char * Msg )
    {
        KLogSetMessage ( MyHdl , Msg );
    }
 
    BOOL SendMessage ( char * Msg )
    {
        SetMessage ( Msg );
        return SendMessage ();
    }
 
    //Stephen: 我扩展的 SendMessage 函数,用于直接发送指定等级的日志消息
    BOOL SendMessage ( char * FacilityName , char * LevelName , char * Msg )
    {
        SetPriority ( FacilityName , LevelName );
        SetMessage ( Msg );
        return SendMessage ();
    }
   
    // Send the message. Return FALSE if an error occurred.
    BOOL SendMessage ()
    {
        if ( KLogSendMessage ( MyHdl ,& Kret ) == FALSE )
        {
            KLogReturnError ( MyHdl , Kerror , sizeof( Kerror ));
            return FALSE ;
        }
        else
             Kerror [0] = '/0' ;
       
        return TRUE ;
    }
   
    // Return the last error code and message
    void ReturnError ( int * Rret , char * Rerror , int Rlen )
    {
        * Rret = Kret ;
        strncpy ( Rerror , Kerror , Rlen );
    }
};
 
注:下面是可用的告警源( Facility name )和告警等级 Level name
Kernel
User
Mail
Daemon
Auth
Syslog
Lpr
News
UUCP
Cron
System0
System1
System2
System3
System4
System5
Local0
Local1
Local2
Local3
Local4
Local5
Local6
Local7
Emergency
Alert
Critical
Error
Warning
Notice
Information
Debug
 
 
最后,在你的应用程序中,如下调用:
#include "klogobj.h"
… …
// 创建一个日志类实例,并设置一些基本信息
//Syslog 服务器:本机 , 端口: 514 ,使用 UDP 协议,应用标记: Test
KLog MyKLog ( "127.0.0.1" , "syslog" ,0, "Test" );
 
int main ( int argc , char * argv [])
{
// 默认发送等级 User.Notice
MyKLog . SendMessage ( " 应用开始运行! " );
 
MyKLog . SendMessage ( "User" , "Error" , " 带等级的日志信息! " );
 
… …
}
 
 
现在你可以打开 Kiwi Syslog Daemon 看看结果日志输出的结果了:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kiwi Syslog Server 9.5.0 是一款功能强大的日志管理和监控软件。它可以帮助用户收集、分析和存储网络设备和服务器生成的日志信息,以帮助用户监控网络和系统的性能和安全性。 首先,Kiwi Syslog Server 9.5.0 提供了简单和友好的用户界面,使用户可以轻松设置和配置日志收集和监控。用户可以选择要收集的设备和服务器,并根据需要设置过滤器和警报规则,以便及时发现和解决可能的问题。 其次,该软件支持多种日志协议,包括Syslog、SNMP Trap和Windows Event Log等,可以与各种网络设备和服务器无缝集成。用户只需简单配置设备或服务器上的日志转发设置,就能将其日志信息发送到Kiwi Syslog Server进行集中管理。 此外,Kiwi Syslog Server 9.5.0 还提供了强大的日志分析功能。用户可以对收集的日志信息进行搜索、过滤和排序,以便更好地了解网络和系统的运行情况。此外,用户还可以创建自定义报表,帮助他们分析和分析日志数据,以进行更深入的研究和决策。 最后,该软件还支持对日志信息进行存储和存档。用户可以选择将日志信息保存在本地文件系统或远程数据库,以便以后参考、审计和归档。此外,用户还可以设置自动清理功能,以控制日志存储的大小和时间范围。 总之,Kiwi Syslog Server 9.5.0 是一款功能全面且易于使用的日志管理和监控软件。它帮助用户轻松收集、分析和存储网络设备和服务器日志信息,以提高网络和系统的性能和安全性。无论是企业、机构还是个人用户,都可以从该软件获得巨大的益处。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值