1、日志log如何看
在openfire的源文件下面bulid/lib/dist/log4j.xml中
<appender name="debug-out" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="d:/logs/debug.log" />
<param name="MaxFileSize" value="1024KB"/>
<param name="MaxBackupIndex" value="5"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="debug" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<appender name="info-out" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="d:/logs/info.log" />
<param name="MaxFileSize" value="1024KB"/>
<param name="MaxBackupIndex" value="5"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="info" />
<param name="LevelMin" value="info" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
上面这个黄底的地方就是我们放日志的地方,默认是{openfire_home},但是我们没有设置环境变量
Log4j是目前应用最广泛的日志空间,它把日志分为:all、trace、debug、info、warning、error、fital、off等级别,级别是依次增高。
Openfire中的log4j配置文件:
<root>
<level value="info" />
<appender-ref ref="debug-out" />
<appender-ref ref="info-out" />
<appender-ref ref="warn-out" />
<appender-ref ref="error-out" />
</root>
起始级别是info
你如果想改低一点,把info改成debug或者其他级别即可。
2、一个账号多处登录
1、启动时候session管理
在sessionManager里面有一个initialize方法,他会读取数据库中ofProperty表中的xmpp.session.conflict-limit数据。表示当前不允许重复登录。
2、登录时候
新的用户登录的时候,他会调用IQBindHandler里面的handleIQ方法来进行登录绑定,他会根据用户名、服务器名称、客户端资源名,来判断当前of环境中是否存在此用户的session,如果有,再判断是否大于数据库中的conflict-limit,若大于,就直接把之前的session给剔除。
若小于conflict-limit他不会剔除session,但会发送错误信息,session保持链接。