之前在看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的。