之前在看Log4j2,想在项目中使用它。后来发现在servlet中这家伙不怎么好使。虽然很新,但是beta版本总是不适合做上线的产品。之前曾经看到过有人说logback is awesome。今天决定试一试它的效果。如果对web很熟悉的,只要看step2和step5就可以了,剩下的都是基本的web配置的东东。
step1:首先在myeclipse中新建一个web project。
step2:然后直接把logback-core-1.0.9.jar、logback-classic-1.0.9.jar、slf4j-api-1.7.2.jar还有logback-access-1.0.9.jar拖到工程下的WEB-INF/lib目录下。
之所以要导入logback-access-1.0.9.jar包的原因是“The logback-access module integrates with Servlet containers, such as Tomcat and Jetty, to provide HTTP-access log functionality.”
step3:在jsp页面中加入一个表单,action指向我们要测试的servlet,再添加一个button,让页面可以触发这个servlet。
step4:在web.xml中配置一下
step5:新建一个TestServlet,填入logback相关的代码
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestServlet extends HttpServlet{ private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { Logger logger = LoggerFactory.getLogger(TestServlet.class.getName()); logger.error("Hello world."); } }
可以看到logback天然地使用了SLF4J,所以在切换其他logging framework的时候也不用特别操心了。
step6:run as -》myeclipse server application
选择tomcat 7.0
step7:在浏览器重触发按钮,使servlet被调用。
在console查看输出结果。
至此,整个简单的在servlet中使用logback的测试已经完成了。
刚才看了logback的architecture,感觉比Log4j2要简洁清晰一些,同时也有很多非常类似的地方,比如logger之间在level上的继承关系。
现在在看logback的configuration,跟Log4j2的也蛮像的,同样,还是比Log4j2更为清晰,而且还有自动查新。
之前折腾那么久的Log4j2感觉有点浪费时间了。应该一开始就看logback的。