我是一个新入行的菜鸟,现在在做java服务器,在这里记录下服务器框架的主要构成,有任何不准确与错误的地方,希望看到的人提出意见。非常感谢!

一、概述。

1.1日志系统介绍。

任何一个应用程序或者游戏的服务器日志系统都是必须的,日志系统的主要目的是:监视代码变量变化;记录服务器访问操作记录以及异常运行操作记录;进行部分统计分析工作;担当开发环境中调试器作用,输出代码调试信息。

1.2  日志系统的选择。

现在最流行的应该是logback,网上很多log4j应该替换为logback的帖子。但是项目一般都会用到很多的框架,很多框架的日志系统都是log4j,所以我们也必须在项目中加入log4j与slf4j。我们需要的jar包包括:logback.classic-1.1.1.jar、logback-core-1.1.1.jar、slf4j-api-1.7.6.jar。是简单介绍下logback的优点,当然大部分都是网上的观点摘抄。

更快的速度。某些执行速度据说快了10倍,而且内存占用也更小了。实现了SLF4j。logback-classics实现了SLF4j,可以非常容易的切换log4j。自动重载配置文件。配置文件修改后,能自动重新加载配置文件,扫描过程快速安全。堆栈树带有包版本。自动去除旧日志文件。当然还有很多其他的优缺点比较,这里只列举我比较关心的。

1.3  下载地址。

http://logback.qos.ch/download.html 可以去官方下载最新包,以及相关文档支持。

二、配置

贴一个测试的日志配置logback.xml

message.contains("dao")
ACCEPT
DENY
%date %-5level [%logger{0}] %thread - %msg%n
message.contains("dao")
ACCEPT
DENY
${log.base}.log
${log.base}_%d{yyyy-MM-dd}.log.zip
100MB
%date %-5level [%logger{0}] %thread - %msg%n

粘一个别的大神正在用的,具体设置根据项目自行编写。

7 %date [%thread] %-5level %logger{80} - %msg%n
 
13 class="ch.qos.logback.core.rolling.RollingFileAppender">
 
15 DEBUG
16 ACCEPT
17 DENY 
 
20 D:/logs/debug.%d{yyyy-MM-dd}.log
 
24 %date [%thread] %-5level %logger{80} - %msg%n
 
30 class="ch.qos.logback.core.rolling.RollingFileAppender">
 
32 ERROR
33 ACCEPT
34 DENY 
 
37 D:/logs/error.%d{yyyy-MM-dd}.log
 
41 %date [%thread] %-5level %logger{80} - %msg%n
 
47 class="ch.qos.logback.core.rolling.RollingFileAppender">
 
50 message.contains("str")
 
52 ACCEPT
53 DENY
 
56 D:/logs/contains.%d{yyyy-MM-dd}.log
 
61 %date [%thread] %-5level %logger{80} - %msg%n
 
68 class="ch.qos.logback.core.db.DriverManagerConnectionSource">
69 com.mysql.jdbc.Driver
70 jdbc:mysql://host_name:3306/datebase_name
71 username
72 password