`
jklr11
  • 浏览: 5344 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

log日志文件基础

阅读更多

当你在开发程序的时候, 调试(debugging)和日志(logging)都是非常重要的工作, 但是, 现在有太多的 logging API 问世, 因为他们都不错, 很难做一个抉择. 国外 java 论坛对于这些 logging 方式也是有一番讨论.

而 common logging 就是一个在这几个不同的 logging API 中建立小小的桥梁.目前在 Java 中最有名的 Log 方式, 首推是 Log4j, 另是 JDK 1.4 Logging API. 除此之外, 还有 Avalon 中用的 LogKit 等等 . 而 commons-logging 也有实现一些基本 的 logging 方式为 NoOpLog 及 SimpleLog. 对于他们的比较不在这次讨论范围,

有兴趣者请自行参阅参考文件.

快速使用 Logging 其实 logging 非常简单去使用, 将 commons-logging.jar 放到 /WEB-INF/lib 之下.接著写以下的代码

LoggingTest.java 

package com.softleader.newspaper.java.opensource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class LoggingTest {

Log log = LogFactory.getLog(LoggingTest.class);

public void hello() {
log.error("ERROR");
log.debug("DEBUG");
log.warn("WARN");
log.info("INFO");
log.trace("TRACE");
System.out.println("OKOK");
}



在 / 放置一个 jsp 测试 test-commons-logging.jsp

<%@ page import="com.softleader.newspaper.java.opensource.LoggingTest" %>
<% LoggingTest test = new LoggingTest(); test.hello();%> 

你将会看到 tomcat console 会有下面输出 

log4j:WARN No appenders could be found for logger (com.softleader.newspaper.java.opensource.LoggingTest).
log4j:WARN Please initialize the log4j system properly.OKOK

是因为你还没有配置 commons-logging.properties, 马上会为你介绍 ~~~. 

设定 commons-logging.properties 你可以设置你的 log factory 是要使用哪一个 我以 Log4J 为例子 在 /WEB-INF/classes/commons-logging.properties 中写入 
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog 
如果你 server 是使用 jdk1.4 以上的版本 
可以使用 org.apache.commons.logging.impl.Jdk14Logger
接著根据你的 Logger 撰写符合他的 properties 拿 Log4j 为例子 你就要在 
/WEB-INF/classes/ 下放置一个 log4j.properties

//日志输出到文件
log4j.rootLogger=DEBUG, A_default
log4j.appender.A_default=org.apache.log4j.RollingFileAppender
log4j.appender.A_default.File=c://log/test.log
log4j.appender.A_default.MaxFileSize=4000KB
log4j.appender.A_default.MaxBackupIndex=10
log4j.appender.A_default.layout=org.apache.log4j.PatternLayout
log4j.appender.A_default.layout.ConversionPattern=%d{ISO8601} - %p - %m%n

# 比较完整的输出
# log4j.appender.A_default.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
//日志输出到控制台
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n


此时你去执行 test-commons-logging.jsp 输出的内容, 就会记录在你的 c:\log 目录的 test.log 中了 ps:如果没有相关的 class 会使用到 SimpLog, 此时要设定的是 
simplelog.properties 结论以我自己本身使用的经验, Log4j 可以满足所有工程师, 所以我也是直接使用 log4j 而没有使用 commons-logging. 

不过为了增加产品的通用性, 避免移植时候的麻烦, 新的产品及项目, 我会将他改成 commons-logging api 去调用. 

如果你对commons-logging的工作原理不是很了解,请参考<commons-logging的使用方法>

分享到:
评论

相关推荐

    spdlog日志系统1.8版本及封装

    spdlog1.8版本,小小的封装了一下,c++,qt均试用,可以根据不的d等级输出不同的文件以及文件夹,文件可直接解压后添加到项目使用,,可直接使用宏输出,非常的方便,节约了开发时间,适用有一定基础编程的研发人员

    log4cpp(添加按日期生成日志类)

    在log4cpp下载的包基础上添加按日期生成日志类,仅供学习和交流

    Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一、场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的...

    日志模块(c/c++),简单、快捷,就一头文件就实现了日志模块无缝接入

    一个C/C++日志记录模块,它是对开源log4c进行的封装和修正的基础上,将所有的代码都集成到一个.h头文件中。带来的革命性突破是日志模块的使用是那么的方便和简单:只要使用一个.h头文件即可无缝的将日志模块嵌入到你...

    log4qt日志库封装demo log4qtDemo-code

    6. 支持输出到日志文件:可以设置保留日期自动覆盖 7. 支持输出到telent 8. 支持输出到自定义控件 9. 支持输出到数据库(个人感觉比较鸡肋,如果需要可以自己设置) 10. 支持中英文、数字等混合日志 11. 支持QT4、QT...

    springboot 日志配置文件 logback

    springboot 日志配置文件 logback 它当前分为以下三个模块: logback-core:其它两个模块的基础模块。 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如...

    C#控制台程序Demo:文件操作和log保存实例

    对文件进行读写操作 对log进行写入保存

    Logback日志系统文件

    Logback是由log4j创始人设计的另一个开源日志组件,基于slf4j的日志规范实现的框架,性能比log4j要好。 Logback主要分为三个技术模块: logback-core:该模块为其他两个模块奠定了基础。 logback-classic:是log4j...

    log4cxx vc工程(含vc项目文件和源代码)

    log4cxx是apache开源基金组织下一个很强的日志操作项目,和...本资源包含了基于vc6和vs2005编译log4cxx-0.10.0的静态库、动态库以及样例程序所需的源代码和项目工程文件,含apr基础库,并覆盖windows x86和x64平台;

    Linux日志基础

     许多有价值的日志文件都是由 Linux 自动地为你创建的。你可以在 /var/log 目录中找到它们。下面是在一个典型的 Ubuntu 系统中这个目录的样子:  一些为重要的 Linux 系统日志包括:  /var/log/syslog 或 ...

    Linux服务器查看日志

    公司的服务是部署在Linux上的,当线上出现各种问题的时候,我们肯定要先看线上...log_info.log是我的日志文件的名称。grep的意思是查找文件里符合条件的字符串。 如果你希望动态地查看日志,可以输入例如命令: tail -f

    基于Java日志平台的访问链路追踪实战(1.01G)

    01-日志专题-java日志体系基础 ---01-课程简介及学习目标.mp4 ---02-java日志体系概述.mp4 ---03-系统日志与log4j日志简介.mp4 ---04-log4j实例代码展示.mp4 ---05-jul的诞生与代码展示.mp4 ---06-jcl的历史背景与...

    putty_0.7.0(ssh, telnet, serial 协议,log 带时间戳 )

    在0.7.0 版本基础上添加终端显示log 时间戳功能,并保存在文件里

    基于Java日志平台的访问链路追踪实战(1.34G)

    01-日志专题-java日志体系基础 ---01-课程简介及学习目标.mp4 ---02-java日志体系概述.mp4 ---03-系统日志与log4j日志简介.mp4 ---04-log4j实例代码展示.mp4 ---05-jul的诞生与代码展示.mp4 ---06-jcl的历史背景与...

    aliyun-log-log4j-appender:aliyun-log-log4j-appender

    Apache log4j是一个Apache软件基础项目。 您可以通过Log4j控制日志的目的地。 它可以是控制台,文件,GUI组件,套接字,NT事件日志,系统日志。 您也可以控制每个日志的输出格​​式。 您可以通过日志级别控制日志...

    linux基础之日志管理

    日志管理 ...tail -10 /var/log/messages //系统主日志文件 tail -f /var/log/messages //动态查看日志文件的尾部 tailf /var/log/secure //认证、安全 tail /var/log/yum.log //yum tail /var/log/maillog

    log4j从入门到精通(附jar文件)

    只要会Java基础,就能看明白这篇文章,从基础开始,直到高级使用。 都是从网上各处查找的,并将网上的资料的整理,筛选,排版,非常适合刚接触log4j与想详细弄明白log4j的人。

    logsearch-for-aws:在您的logsearch部署中摄取并解析您的AWS日志(计费,CloudTrail等)

    它从S3下载日志文件并对其内容进行规范化 事件被推送到Redis队列中 您的常规logsearch集群将负责其余的工作 我们喜欢此设置,因为... 可以继续添加对所有AWS日志格式的支持 可以重用我们现有的logsearch基础架构来...

    log4c-2.0.1

    在原来的log4c-2.0.0的基础上新增Cache模块,来支持重置日志级别输出,配置文件的内嵌(详见使用说明文档)

    入门linux基础之日志管理篇

    日志文件(messages,httpd/access.log),存放日志的目录 /var/log,日志配置文件 /etc/rsyslog.conf。 tail -10 /var/log/messages //系统主日志文件 tail -f /var/log/messages //动态系统主日志文

Global site tag (gtag.js) - Google Analytics