在不使用框架的时候,一般使用监听器或者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相关推荐

  1. 在maven web项目中配置log4j打印日志及Mybatis sql语句

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wei542657623/article/details/51591736 1 添加依赖 在pom.x ...

  2. 详解log4j2(下) - Log4j2在WEB项目中配置

    官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/ 首先在WEB项目中引入以下几个jar包: ① log4j-api-2.4.1.jar ② log4j- ...

  3. Spring-Spring Web项目中配置使用Log4j 2

    Log4j 2概述 为什么要使用Log4j 2 Spring中配置Log4j 2 添加Maven依赖 配置webxml 配置Log4j 2 使用Log4j 2 Log4j 2概述 请查看另外一篇博文L ...

  4. 3.Web项目中使用Log4j实例

    转自:https://blog.csdn.net/luohai859/article/details/52250807 上面代码描述了Log4j的简单应用,其实使用Log4j也就是这样简单方便.当然除 ...

  5. 项目中配置log4j步骤

    为什么80%的码农都做不了架构师?>>>    1    下载log4j.jar包,并引入到项目中 2     项目src目录新增log4j.properties文件,里面源码为: ...

  6. day63-webservice 08.在web项目中配置带有接口的webservice服务

    这个是配置带有接口的WebService的服务. http://localhost:8080/cxf-web-server/service 带有接口的实现类也给它做好了.jaxws:endpoint是 ...

  7. 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 ...

  8. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例

     要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...

  9. java web access_Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

最新文章

  1. 华为又一重拳!全球首款5G基站核心芯片“天罡”发布!
  2. Centos6.5安装Seafile,遇到的问题处理记录。
  3. [architecture]-ARMV8的一些总结-一篇就够了
  4. Java千百问_03基本的语法(005)_二进制是如何做位运算的
  5. 新建网站与新建Asp.Net+Web+应用程序的区别
  6. ajax fetch api,fetch 简介: 新一代 Ajax API
  7. Jmeter之app性能测试(ios,android)
  8. css基础知识汇总8
  9. 头像+壁纸微信小程序源码
  10. 2020年中国科技核心期刊目录(自然科学卷)
  11. 用vant 自定义小程序tabBar
  12. isilon 时间设置
  13. 自定义加密cookie加盐密码
  14. ML-Agents命令及配置大全
  15. 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱
  16. 云栖大会人脸识别闸机【技术亮点篇7】--人脸识别闸机可挑战12万组人脸数据
  17. 基于SpringBoot的养老院管理系统的设计与实现
  18. 插在计算机主板的扩展插槽,终于有人在计算机主板上放置了四个通用插槽: PCI...
  19. 200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作
  20. 人民币小写转换成大写

热门文章

  1. xp 安装mysql数据库_Windows XP系统中安装MySQL5.5.28数据库图文教程
  2. 如何通过HBuilderX运行微信小程序,启动Enable IDE Service,X initialize 解决方案
  3. python奥运五环_python如何画奥运五环
  4. java tree degree_生成树计数-Matrix-Tree定理
  5. 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...
  6. 20.Android studio提示Cmake Error executing external native build for cmake...
  7. 11.QT事件机制源码时序分析(下)
  8. 下拉列表 php,php数组生成html下拉列表的方法
  9. 菜鸟成长之路05/06/07
  10. Illustrator+FontLab 进行字体设计教程