Log4j进阶:在线查看log日志并使用tomcat验证账户权限


声明:本文转载自https://my.oschina.net/lixuelong/blog/1582001,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

有时候,查看log日志都要跑到服务器,或者把log文件下载下来看,还是比较麻烦的,今天咱们做个配置,让log日志可以在线查看。我使用的容器是Tomcat,所以,这是针对Tomcat的服务而言

原理说起来非常简单,就是让生成的日志到项目同级,在tomcat中作为一个静态资源项目可以通过网络在线查看,安全也不能忽视,不能让谁都能看到,这里我选择了让tomcat来负责账户权限校验,参考了tomcat自带示例manager的配置。

  • 首先,我们把日志文件保存的路径修改下,保存到项目的同级目录。在web.xml中添加一个配置,这里的webApp.root可以随意指定,参数名不可修改
<!--日志文件路径映射到WEB-INF下--> <context-param>   <param-name>webAppRootKey</param-name>   <param-value>webApp.root</param-value> </context-param>
  • 修改log4j.properties文件,修改一下日志文件的保存路径,这么简单一改,日志文件就保存到项目同级的log文件夹中了
log4j.appender.D.File=${webApp.root}/../log/debug.log
  • 接着,我们再来添加下tomcat权限验证,在tomcat的webapps中创建一个log文件夹,然后创建一个WEB-INF文件夹,里面放上一个web.xml,内容如下
<?xml version="1.0" encoding="UTF-8"?>  <web-app xmlns="http://java.sun.com/xml/ns/javaee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"   version="3.0"   metadata-complete="true">    <display-name>Log Application</display-name>      <filter>     <filter-name>SetCharacterEncoding</filter-name>     <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>     <init-param>       <param-name>encoding</param-name>       <param-value>UTF-8</param-value>     </init-param>   </filter>    <filter-mapping>     <filter-name>SetCharacterEncoding</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>    <!-- Define a Security Constraint on this Application -->   <!-- NOTE:  None of these roles are present in the default users file -->   <security-constraint>     <web-resource-collection>       <web-resource-name>Log Manager interface (for humans)</web-resource-name>       <url-pattern>/*</url-pattern>     </web-resource-collection>     <auth-constraint>        <role-name>log</role-name>     </auth-constraint>   </security-constraint>    <!-- Define the Login Configuration for this Application -->   <login-config>     <auth-method>BASIC</auth-method>     <realm-name>Tomcat Manager Application</realm-name>   </login-config>    <!-- Security roles referenced by this web application -->   <security-role>     <description>       The role that is required to access the HTML Manager pages     </description>     <role-name>log</role-name>   </security-role>  </web-app> 
  • 上面指定了访问log项目时的账户角色为log,这个log角色的配置就要看tomcat/conf下的tomcat-users.xml了,在<tomcat-users>标签中把角色log加上,并加一个用户
<role rolename="log"/> <user username="log" password="123" roles="log"/>
  • 再给项目来个首页重定向,在log目录下添加一个index.jsp文件,内容只有一行,我这想默认就看到debug.log,所以就下面这么写
<% response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + "/debug.log")); %>
  • 访问下,看看效果

输入我们配置的账户log/123,登录,有没有看到日志,看到就说明大功告成了

 

本文发表于2017年11月30日 12:33
(c)注:本文转载自https://my.oschina.net/lixuelong/blog/1582001,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2096 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1