不使用框架的web项目中配置log4j
在不使用框架的时候,一般使用监听器或者Servlet来初始化log4j进行启动,这里我使用Servlet,代码入下:
import java.io.File; import java.io.IOException;import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.apache.log4j.BasicConfigurator; import org.apache.log4j.PropertyConfigurator;public class Log4JInitServlet extends HttpServlet {private static final long serialVersionUID = 1L;public Log4JInitServlet() {super();}public void init(ServletConfig config) throws ServletException {System.out.println("正在初始化 log4j日志设置信息");String log4jLocation = config.getInitParameter("log4j-properties-location");ServletContext sc = config.getServletContext();if (log4jLocation == null) {System.err.println("没有找到log4j-properties-location, 所以使用 BasicConfigurator初始化");BasicConfigurator.configure();} else {String webAppPath = sc.getRealPath("/");String log4jProp = webAppPath + log4jLocation;File yoMamaYesThisSaysYoMama = new File(log4jProp);if (yoMamaYesThisSaysYoMama.exists()) {System.out.println(log4jProp + "初始化日志设置信息");PropertyConfigurator.configure(log4jProp);} else {System.err.println(log4jProp+ " 文件没有找到, 所以使用 BasicConfigurator初始化");BasicConfigurator.configure();}}super.init(config);}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {}}
在web.xml中修改一下:
<servlet><servlet-name>Log4JInitServlet</servlet-name><servlet-class>com.scme.filter.Log4JInitServlet</servlet-class><init-param><param-name>log4j-properties-location</param-name><param-value>/WEB-INF/log4j.properties</param-value></init-param><load-on-startup>1</load-on-startup> <!-- 设置加载顺序--></servlet>
在 WEB-INF/ 目录下添加log4j.properties文件,例子如下:
log4j.rootLogger = INFO,stdout,D log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out //设置为控制台输出,级别为默认的INFO log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File =../jump_log/logs.log //输出到文件 log4j.appender.D.DatePattern ='_'yyyy-WW'.log' //每周产生一个新文件 log4j.appender.D.Append = true log4j.appender.D.Encoding=UTF-8 //设置日志文件编码 log4j.appender.D.Threshold = INFO log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
附:打印参数信息
%m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL %r 输出自应用启动到输出该log信息耗费的毫秒数 %c 输出所属的类目,通常就是所在类的全名 %t 输出产生该日志事件的线程名 %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921 %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
转载于:https://www.cnblogs.com/meetzy/p/7764958.html
不使用框架的web项目中配置log4j相关推荐
- 在maven web项目中配置log4j打印日志及Mybatis sql语句
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wei542657623/article/details/51591736 1 添加依赖 在pom.x ...
- 详解log4j2(下) - Log4j2在WEB项目中配置
官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/ 首先在WEB项目中引入以下几个jar包: ① log4j-api-2.4.1.jar ② log4j- ...
- Spring-Spring Web项目中配置使用Log4j 2
Log4j 2概述 为什么要使用Log4j 2 Spring中配置Log4j 2 添加Maven依赖 配置webxml 配置Log4j 2 使用Log4j 2 Log4j 2概述 请查看另外一篇博文L ...
- 3.Web项目中使用Log4j实例
转自:https://blog.csdn.net/luohai859/article/details/52250807 上面代码描述了Log4j的简单应用,其实使用Log4j也就是这样简单方便.当然除 ...
- 项目中配置log4j步骤
为什么80%的码农都做不了架构师?>>> 1 下载log4j.jar包,并引入到项目中 2 项目src目录新增log4j.properties文件,里面源码为: ...
- day63-webservice 08.在web项目中配置带有接口的webservice服务
这个是配置带有接口的WebService的服务. http://localhost:8080/cxf-web-server/service 带有接口的实现类也给它做好了.jaxws:endpoint是 ...
- Spring MVC 项目中配置log4j 出现错误log4j:ERROR Failed to excute sql com.mysql.jdbc.exceptions.jdbc4.MySQLSynt
错误信息如下: 2016-09-08 17:11:45 [com.mchange.v2.c3p0.C3P0Registry]-[INFO] Initializing c3p0-0.9.1.2 [bui ...
- SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例
要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...
- java web access_Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
最新文章
- 华为又一重拳!全球首款5G基站核心芯片“天罡”发布!
- Centos6.5安装Seafile,遇到的问题处理记录。
- [architecture]-ARMV8的一些总结-一篇就够了
- Java千百问_03基本的语法(005)_二进制是如何做位运算的
- 新建网站与新建Asp.Net+Web+应用程序的区别
- ajax fetch api,fetch 简介: 新一代 Ajax API
- Jmeter之app性能测试(ios,android)
- css基础知识汇总8
- 头像+壁纸微信小程序源码
- 2020年中国科技核心期刊目录(自然科学卷)
- 用vant 自定义小程序tabBar
- isilon 时间设置
- 自定义加密cookie加盐密码
- ML-Agents命令及配置大全
- 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱
- 云栖大会人脸识别闸机【技术亮点篇7】--人脸识别闸机可挑战12万组人脸数据
- 基于SpringBoot的养老院管理系统的设计与实现
- 插在计算机主板的扩展插槽,终于有人在计算机主板上放置了四个通用插槽: PCI...
- 200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作
- 人民币小写转换成大写
热门文章
- xp 安装mysql数据库_Windows XP系统中安装MySQL5.5.28数据库图文教程
- 如何通过HBuilderX运行微信小程序,启动Enable IDE Service,X initialize 解决方案
- python奥运五环_python如何画奥运五环
- java tree degree_生成树计数-Matrix-Tree定理
- 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...
- 20.Android studio提示Cmake Error executing external native build for cmake...
- 11.QT事件机制源码时序分析(下)
- 下拉列表 php,php数组生成html下拉列表的方法
- 菜鸟成长之路05/06/07
- Illustrator+FontLab 进行字体设计教程