我是一个新入行的菜鸟,现在在做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
粘一个别的大神正在用的,具体设置根据项目自行编写。
23 4 5 6 10 11 127 9%date [%thread] %-5level %logger{80} - %msg%n 814 27 28 2915 19DEBUG 16ACCEPT 17DENY 1820 23D:/logs/debug.%d{yyyy-MM-dd}.log 2130 2224 26%date [%thread] %-5level %logger{80} - %msg%n 2531 44 45 4632 36ERROR 33ACCEPT 34DENY 3537 40D:/logs/error.%d{yyyy-MM-dd}.log 3830 3941 43%date [%thread] %-5level %logger{80} - %msg%n 4248 64 65 6649 5550 52message.contains("str") 51ACCEPT 53DENY 5456 60D:/logs/contains.%d{yyyy-MM-dd}.log 57 5830 5961 63%date [%thread] %-5level %logger{80} - %msg%n 6267 75 7669 74com.mysql.jdbc.Driver 70jdbc:mysql://host_name:3306/datebase_name 71username 72password 7377 7978 80 8281 83 8584 86 8887 89 9190 92 9493 95 9796 98 10099 101 103 104102 105 111 112106 107 108 109 110