[JDEV] Loging component

Daniel Miao dmiao at sh.symbidia.com
Mon Dec 16 10:47:56 CST 2002


I wrote an experimental message logging component that might help 
you.  It's written in Perl.  I posted up on jabberstudio under the "msglog" 
project.  It uses the <archive> functionality and logs to a text file 
(XML), mysql database, and can also sniff messages of other users in real 
time.  Take a look if you'd like.  Files are in CVS (only like 3 or 4 
files).  Maybe it'll help =)

Daniel


At 12:10 PM 12/15/2002 +0100, you wrote:
>Yes, you can write a component that will log all messages (and more). It 
>has been discussed on this list before, for more details search the archive.
>
>Here's some information taken from one of this thread.
>
>>Philippe Raxhon wrote:
>>
>>I now remember another solution. In the jsm section of jabber.xml, one 
>>can add:
>><archive>
>>  <service>myservice.myhost</service>
>><archive>
>>
>>given you have defined such a service in the service section of 
>>jabber.xml, for instance:
>><service id ="myservice">
>>  <host>myservice.myhost>
>>  <accept>
>>     <ip>localhost</ip>
>>     <port>5999</port>
>>     <secret>secret</secret>
>>  </accept>
>></service>
>>
>>The accept component (it can be writen in any language and doesn't have 
>>to run on the same host) will receive a copy of every message sent by the 
>>users. The interesting part is that I think it's easy to hack the mod_log 
>>module to "archive" not only the messages, but also the presence or iq.
>>
>>Please, correct me if I'm wrong.
>>
>>Jean-Louis Seguineau /EXC/TEC wrote:
>>
>>Hey,
>>
>>That's easy ! And it has nothing to do with whatever language you use. It
>>does it requires to write a JSM module as long as your component is only
>>meant to process the received packets and not interfere with the JSM
>>processing. This can be applied to build a kind of packet "sniffer" and
>>allow you to count, record, monitor, etc...
>>
>>You just need to declare a service in your jabber.xml so to receive a copy
>>of all packets going through the server.
>>
>><service id="sniffer.myserver">
>>    <host>myserver</host>
>>    <host>myjpolld.myserver</host>
>>    <host>sniffer.myserver</host>
>>....
>>  plus any aother internal JID that you want to monitor
>>
>>
>>    <accept>
>>        <ip/>
>>        <port>myport</port>
>>        <secret>secret</secret>
>>    </accept>
>></service>
>>
>>Then the sniffer component will receive a copy of all traffic for the
>><host>s. The component can sit on another server as any component can.
>>
>>There is no way that I jnow of to separate the packets types before they are
>>sent to the component. But you can either make one component per packet type
>>and filter the input, or make a filter component that in turn direct the
>>right packet type to a specific processor component.
>>
>>Hope it helps
>>
>>Jean-Louis
>
>BTW: in which langage do you want to implement the component part?
>
>Cheers
>
>Philippe
>
>Jonas Zaveckas wrote:
>
>>Hello,
>>I would like to make some facility to log all message traffic comming 
>>through jabberd server. How can I do this? Can I make some server 
>>component to do this?
>>
>>Thanks,
>>Jonas Zaveckas
>>
>>_______________________________________________
>>jdev mailing list
>>jdev at jabber.org
>>http://mailman.jabber.org/listinfo/jdev
>
>
>
>_______________________________________________
>jdev mailing list
>jdev at jabber.org
>http://mailman.jabber.org/listinfo/jdev
>




More information about the JDev mailing list