`
releasa
  • 浏览: 40481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web 应用下的日志记录(转)

    博客分类:
  • Java
 
阅读更多
一、将需要的类包放入WEB-INF/class或者lib之下。commons-logging-1.0.4.jar ,log4j-1.2.11.jar
在WEB-INF/class下建立log4j.properties,用来设定log4j的配置信息。
范例:
log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

说明 :
1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 
其中,level是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优
先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定
义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

2.配置日志信息输出目的地Appender,其语法为: log4j.appender.appenderName = fully.qualified.name.of.appender.classlog4j.appender.appenderName.option1 = value1  …log4j.appender.appenderName.option = valueN  其中,Log4j提供的appender有以下几种:
  org.apache.log4j.ConsoleAppender(控制台),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

3.配置日志信息的格式(布局),其语法为: log4j.appender.appenderName.layout = fully.qualified.name.of.layout.classlog4j.appender.appenderName.layout.option1 = value1  …log4j.appender.appenderName.layout.option = valueN  其中,Log4j提供的layout有以下几种:
  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

二、编写servlet,自动完成log4j的初始化
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Log4jInit extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init() {
  String prefix = getServletContext().getRealPath("/");
  String file = getInitParameter("log4j-init-file");
  // if the log4j-init-file is not set, then no point in trying
  if (file != null) {
   PropertyConfigurator.configure(prefix + file);
  }
}
public void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}
三、在web.xml中配置该servlet
<servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.foo.Log4jInit</servlet-class>
    <init-param>
      <param-name>log4j-init-file</param-name>
      <param-value>WEB-INF/classes/log4j.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

四、使用log4j
无论是在jsp中还是在java中,首先应引入类库
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
使用时:Log log = LogFactory.getLog("logName");
这里似乎有个疑问了,为什么没有直接使用org.apache.log4j.Logger 和 org.apache.log4j.LogManager?
  在Jakarta Commons 有一段描述:
The default LogFactory implementation uses the following discovery process to determine what type of Log implementation it should use (the process terminates when the first positive match - in order - is found):

Look for a configuration attribute of this factory named org.apache.commons.logging.Log (for backwards compatibility to pre-1.0 versions of this API, an attribute org.apache.commons.logging.log is also consulted).
Look for a system property named org.apache.commons.logging.Log (for backwards compatibility to pre-1.0 versions of this API, a system property org.apache.commons.logging.log is also consulted).
If the Log4J logging system is available in the application class path, use the corresponding wrapper class ( Log4JLogger ).
If the application is executing on a JDK 1.4 system, use the corresponding wrapper class ( Jdk14Logger ).
Fall back to the default simple logging wrapper ( SimpleLog ).
在大多数情况下,日志继承使得将log4j作为底层的支持成为首选。

来源:http://hi.baidu.com/lkf0217/blog/item/7d9fbf51088fcd2d42a75b3f.html
分享到:
评论

相关推荐

    Springboot统一web请求日志

    为了不影响应用程序的性能,应该避免在高并发情况下进行过多的日志记录。可以考虑在生产环境中调整日志级别,或者仅记录错误和警告信息。 通过以上步骤,我们可以实现Spring Boot中的Web请求日志统一管理,确保在...

    明御WEB应用防火墙-用户操作手册V3.0.4.3.3.doc

    明御WEB应用防火墙具有日志功能,可以记录 WEB 应用的访问日志、攻击日志等,帮助管理员及时发现和应对安全威胁。 7. 明御WEB应用防火墙的报表功能 明御WEB应用防火墙具有报表功能,可以生成 WEB 应用的安全报表,...

    web日志数据挖掘在服务器安全方面的应用探讨.pdf

    Web日志挖掘并非直接分析原始数据,而是通过用户和网络之间的互动,获取第二手数据,例如用户提问式、浏览器访问记录、代理服务器日志记录、用户个人简历和网络服务器访问记录等。 服务器安全是一个包含多个维度的...

    Web日志挖掘数据预处理技术的研究与实现

    本文重点介绍了用户识别算法在Web日志挖掘中的应用,并提出了一种基于多重约束条件的用户识别算法。 #### 引言 互联网的快速发展催生了大量的在线信息和服务。为了从这些海量数据中提取有价值的信息,Web数据挖掘...

    Node.js-基于express的访问日志记录器

    Express.js作为Node.js中最流行的Web应用框架,提供了丰富的扩展性,让我们能够轻松定制自己的访问日志记录器。"Node.js-基于express的访问日志记录器"项目就是这样一个实现,它专注于在Express应用中记录HTTP请求的...

    WEB服务器日志数据

    在IT行业中,Web服务器日志数据是至关重要的资源,它记录了服务器与用户之间的交互细节,为各种分析和优化提供基础。"WEB服务器日志数据"这个主题涉及到的知识点广泛,包括日志文件的结构、内容、分析方法以及其在...

    Web应用开启了Local cache后,发现应用日志不再更新1

    标题中的“Web应用开启了Local cache后,发现应用日志不再更新1”指出的问题是,在启用Web应用程序的本地缓存功能后,应用程序的日志记录出现了异常,不再持续更新。描述中提到,日志在大约2分钟后中断,这与Local ...

    WEB应用安全(ppt)

    此外,Web应用安全还包括其他方面,如会话管理、密码学应用、访问控制、输入验证、错误处理和日志记录等。有效的会话管理能防止会话劫持和会话固定攻击;密码学应用涉及到加密算法的选择和使用,以保护用户的登录...

    Web应用安全:Nginx日志配置实验.doc

    默认情况下,Nginx已经配置了日志记录,但为了确保服务正常运行,我们需要在`http{}`块中添加或确认以下日志配置: ```nginx log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$...

    c#2.0使用TraceExtension记录WebService的Soap日志

    在C# 2.0中,我们可以使用System.Diagnostics命名空间下的Trace类和相关的扩展方法来实现日志记录。这些方法包括Trace.Write, Trace.WriteLine, Trace.Assert等,它们可以在控制台、文件、事件查看器或其他自定义...

    基于切面的日志记录SSMdemo

    这个简单的例子展示了如何在不改变原有业务代码的情况下,利用AOP实现日志记录。在实际项目中,日志记录可能需要更复杂的逻辑,如区分不同级别的日志(DEBUG、INFO、WARN、ERROR),写入不同的日志文件,甚至集成到...

    Web应用安全:IIS日志配置.docx

    IIS(Internet Information Services)是微软公司提供的互联网基础服务,它作为Windows操作系统的一部分,提供了一系列用于托管Web应用程序和服务的功能。本文将深入探讨如何配置IIS日志,这对于Web应用安全至关重要...

    web应用程序开发安全指南

    8. 日志记录:日志记录是 Web 应用程序的重要组成部分,需要保护用户的数据不被泄露。 三、 具体措施 为了提高 Web 应用程序的安全性,需要采取以下具体措施: 1. 身份验证:使用安全的身份验证机制,例如 SSL/...

    LogHelper C#日志记录

    6. **性能优化**:为了保证日志记录不影响程序的正常运行,LogHelper通常会采用异步写入的方式,确保高并发环境下的性能。 7. **配置文件支持**:通过配置文件,开发者可以方便地修改LogHelper的行为,如日志存储...

    web式工作日志系统

    "Web式工作日志系统"是一种在线...综上所述,"Web式工作日志系统"是一个集任务记录、进度跟踪、信息共享为一体的在线平台,它利用现代Web技术实现高效的工作管理,并且在开发过程中涉及到各种技术和工具的选择与整合。

    在web应用中使用日志工具log4J

    - **Logger**:日志记录器,是Log4J的核心组件,负责生成日志信息。 - **Appender**:输出目标,定义日志信息输出的位置,如控制台、文件、数据库等。 - **Layout**:布局,控制日志信息的格式,例如简单布局、...

    Web应用安全:apache日志配置.docx

    日志格式化参数允许定制日志记录的内容,以下是一些常见的参数: - `%h`: 远程主机的IP地址。 - `%A`: 服务器的本地IP地址。 - `%B`: 发送的字节数,不包括HTTP头。 - `%b`: 按CLF(Common Log Format)格式记录的...

    系统启动记录日志例子

    在IT行业中,日志记录是系统管理和故障排查的重要环节,特别是在系统启动时,记录日志信息可以帮助我们了解启动过程中的每一个细节,及时发现并解决可能出现的问题。本文将深入探讨“系统启动记录日志”这一主题,...

    Web应用安全:Nginx日志配置.pptx

    Web应用安全:Nginx日志配置 在 Web 应用安全中,Nginx 日志配置是一项重要的安全措施。通过合适的日志配置,可以更好地记录和追踪网站的访问记录,从而帮助管理员更好地监控网站的安全状态。本文将详细介绍 Nginx ...

Global site tag (gtag.js) - Google Analytics