log4j学习(一)最简单的例子

前言:

  之前笔者一直是在System.out中打日志的,由于笔者大部分时候是编写在tomcat容器里运行的一些个小web应用,所以这么做似乎没什么问题:打印出来的日志都可以在tomcat自己的log目录下的一些个日志文件里找到。但是,最近笔者接触到一个项目,需要编写一个不依赖于容器的能够直接在系统上运行的socket服务器程序,使得笔者急需一个能够打自己日志的地方,于是开始学习log4j。顺便,也逼迫笔者真正的好好学习关于流、比http更为底层TCP和其对应的socket通信、多线程等知识。

正文开始

log4j目前已经发布了2.0版本,但本例子中使用的仍是最普遍使用的log4j1.2版本。

将log4j-1.2.17.jar下载并添加到项目中后,在java项目的src根目录中添加配置文件log4j.properties

#设置级别
log4j.rootLogger=debug,appender1

#输出到文件(这里默认为追加方式)
log4j.appender.appender1=org.apache.log4j.FileAppender
#设置文件输出路径
log4j.appender.appender1.File=C:/Users/lixin/Desktop/myproject.log
#设置文件输出样式
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

然后在一个最简单的java程序中测试这个例子: 向桌面的myproject.log中写日志

package com.myproject.test;

import org.apache.log4j.Logger;

public class MyTestClass {
    private static Logger logger = Logger.getLogger(MyTestClass.class);
    public static void main(String[] args){
        System.out.println("Hello world");
        logger.info("----交易日志,日志级别info----->"+"hello world"+"<--------");
    }
}

运行,myproject.log中显示:

[main] INFO com.myproject.test.MyTestClass - ----交易日志,日志级别info----->hello world<--------
时间: 2024-11-07 08:41:47

log4j学习(一)最简单的例子的相关文章

新秀学习Hibernate——一个简单的例子

一个.Hibernate开发. 上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类. 为了可以使用Hibernate高速上手,我们先解说一个简单的Hibernate应用实例hibernate_first. 二.开发流程. 1.首先在MyEclipce中新建一个hibernate_first的项目,然后新建后的项目文件夹为: 2.配置Hibernate环境. 3.编写持久化类User.java package com.bjpowernode.hibernate; import java

log4j学习笔记一(简单配置log4j)

1.导入log4j-1.2.17.jar包 2.在web项目的web.xml中加入以下配置 <!-- 配置Log4j --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <context-param> <param-name>log4jConfigLocati

Android中关于JNI 的学习(零)简单的例子,简单地入门

Android中JNI的作用,就是让Java能够去调用由C/C++实现的代码,为了实现这个功能,需要用到Anrdoid提供的NDK工具包,在这里不讲如何配置了,好麻烦,配置了好久... 本质上,Java去调用C/C++的代码其实就是去调用C/C++提供的方法,所以,第一步,我们要创建一个类,并且定义一个Native方法,如下: JniTest类: public class JniTest { public native String getTestString(); } 可以看到,在这个方法的前

Android中关于JNI 的学习(四)简单的例子,温故而知新

在第零篇文章简单地介绍了JNI编程的模式之后,后面两三篇文章,我们又针对JNI中的一些概念做了一些简单的介绍,也不知道我到底说的清楚没有,但相信很多童鞋跟我一样,在刚开始学习一个东西的时候,入门最好的方式就是一个现成的例子来参考,慢慢研究,再学习概念,再回过来研究代码,加深印象,从而开始慢慢掌握. 今天我们就再来做一个小Demo,这个例子会比前面稍微复杂一点,但是如果阅读过前面几篇文章的话,理解起来也还是很简单的.很多东西就是这样,未知的时候很可怕,理解了就很简单了. 1)我们首先定义一个Jav

Log4J学习【一】Log4J简介

Log4J简介 基本上所有的大型应用,包括我们常用的框架,比如hibernate:spring:struts等,在其内部都做了一定数量的日志信息.为什么要做这些日志信息,在系统中硬编码日志记录信息是调试系统,观察系统运行状态的一种方式.可能大部分程序员都还记得自己最开始写代码的时候,写一个方法总是出错,就喜欢使用System.out.println("1111111")之类的代码来查看程序的运行是否按照自己想要的方式在运行,其实这些sysout就是日志记录信息,但使用System.ou

加壳学习笔记(三)-简单的脱壳思路&amp;调试思路

首先一些windows的常用API: GetWindowTextA:以ASCII的形式的输入框 GetWindowTextW:以Unicaode宽字符的输入框 GetDlgItemTextA:以ASCII的形式的输入框 GetDlgItemTextW:以Unicaode宽字符的输入框 这些函数在使用的时候会有些参数提前入栈,如这函数要求的参数是字符串数目.还有大小写啦之类的东西,这些东西是要在调用该函数之前入栈,也就是依次push,就是说一般前面几个push接着一个call,那前面的push可能

关于集成学习基础的简单描述

关于集成学习基础的简单描述 什么是集成学习? 集成建模是优化模型表现的一条重要途径.通常来说,将集成学习方法运用在你所构建的诸多模型之上是十分值得的,而同道中人们也一次又一次地证明着这一点.他们在诸如Kaggle之类的数据建模竞赛中往往会不约而同地采用集成学习,并且从中受益. 集成学习其实是一个很宽泛的概念,对于它的定义,可谓仁者见仁智者见智.接下来,本文将介绍一些集成建模的基本概念和思想,这些知识应该足以让你起步,从而去构建你自己的集成模型.同时,和往常一样,我们将尽量让它们看起来简单一些.

log4j学习一:解决系统日志错位问题

这两天,开发的系统遇到了一个非常奇怪的问题,我们的前台程序会将日志时而输出到webapp.log,时而输出到其他日志文件如AlarmThreshold.log中,初看并无规律,但秉着"机器永远不会出错,出错的总是人"这一理念,试着分析原因. log4j是java使用最为广泛的日志框架,它的使用也相对简单,通过配置appender,logger来定义日志的输出位置,输出格式等,也可以将数据输出到控制台,远程文件系统,数据库等.下面给出一个log4.xml的配置文件: <?xml v

Log4j终结者(一)——以例子的方式详细介绍Log4j配置文件中代码的含义

通过Log4j可以方便的对项目中的日志进行处理--控制日志信息输出的目的地(控制台.文件.GUI组件或NT事件记录器).控制每一条日志的输出格式(HTMLLayout布局格式.PatternLayout布局格式.SimpleLayout布局格式或TTCCLayout).控制所输出日志信息的级别(DEBUG级别.INFO级别.WARN级别.ERROR级别或FATAL级别)等.下面从一个简单的例子入手来详细介绍Log4j的使用方法: 工程结构如下图: TestLog4j.java文件中的代码: pa

Learn Prolog Now 翻译 - 第一章 - 事实,规则和查询 - 第一节, 一些简单的例子

 该系列文章是网上的Prolog学习资料:www.learnprolognow.org的中文翻译.希望能够通过翻译此学习资料,达到两个目的:第一.系统学习prolog的知识:第二.提升英文文章理解 和翻译能力. 内容摘要: 给出一些Prolog编程的简单例子: Prolog的基本结构:事实,规则和查询: 环境说明: 本系列文章使用的Prolog运行环境是:SWI-Prolog,官网地址是:http://www.swi-prolog.org. Prolog中只有三种基础结构:事实(facts),规