java log4j配置 2018_2018.8.6 学习 log4j.properties 配置文件

配置文件的话第一步当然是解决乱码问题

Eclipse中properties文件中文乱码解决方式

打开eclipse的properties文件时你会发现,其中部分中文注释乱码了,下面将写出如何设置properties的编码格式为正确的中文显示编码格式

1.首先, 右键properties文件,点击 右键properties,你会看到默认的 编码格式为ISO-8859-1

2.接下来我们把选择Other,选择编码格式为UTF-8,也有的说选择GB2312,这里没有,那我们就选择UTF-8,然后点击Apply——OK,中文显示乱码就可以解决了,很简单的,经历过一遍就会记住。

3.重新复制粘贴一次就解决了,也不会影响项目里面的其他的中文注释乱码 有些同学可能会在其他地方修改,但是你会发现你项目里面的注释变成了乱码,虽然log4j的配置文件不是乱码,因小失大这样划不来。这是禅师过的最有效的方法了。欢迎大家来更正。

end

log4j.properties 配置文件的编写

这是已经写好的 log4j.properties 文件 可直接拿来用,把下面这些代码复制进去保存就好了

### 设置###

log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

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

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = E://logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

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

### 输出ERROR 级别以上的日志到=E://logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =E://logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

log4j.appender.E.layout = org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

使用 log4j.properties 配置文件

1java程序中使用log4j】

步骤

1.1 导入jar包

log4j-1.2.17.jar

1.2 在src目录下创建log4j.properties文件 (记住是src下不是跟src同级目录)

具体配置信息可以拷贝上面的

1.3 在测试类中使用

public class Test {

private static Logger logger = Logger.getLogger(Test.class);

public static void main(String[] args) {

// System.out.println("This is println message.");

// 记录debug级别的信息

logger.debug("This is debug message.");

// 记录info级别的信息

logger.info("This is info message.");

// 记录error级别的信息

logger.error("This is error message.");

}

点击运行之后在对应的文件夹下打开发现一个乱码问题

写入文件乱码

#配置输出到控制台编码

log4j.appender.CONSOLE.charset=utf-8

log4j.appender.CONSOLE.encoding=utf-8

#配置输出到文件编码

log4j.appender.A.Encoding=UTF-8

2 javaweb中使用log4j

2.1导入jar包

log4j-1.2.17.jar

2.2在src目录下创建log4j.properties文件

2.3 创建Log4jServlet

@WebServlet(

value = "/Log4jServlet",

initParams= {

@WebInitParam(name="log4j-init-file",value="WEB-INF\\classes\\log4j.properties")

},

loadOnStartup=1

)

public class Log4jServlet extends HttpServlet{

@Override

public void init() throws ServletException {

String prefix = getServletContext().getRealPath("/");

String file = getInitParameter("log4j-init-file");

System.out.println("文件路径:"+prefix+file);

if(file!=null) {

PropertyConfigurator.configure(prefix+file);

}

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}

}

2.4在其它servlet使用

Logger logger = Logger.getLogger(this.getClass());

// 记录debug级别的信息

logger.debug("This is debug message.");

// 记录info级别的信息

logger.info("This is info message.");

// 记录error级别的信息

logger.error("This is error message.");

3 javaweb使用log4j添加到数据库

3.1创建日志表

CREATE TABLE LogInfo (

CreateTime varchar2(255),--产生时间

Class varchar2(255) NULL ,--类名

LogLevel varchar2(20) NULL ,--日志级别

Mothod varchar2(255) NULL ,--方法名

MSG varchar2(555) NULL --日志信息

);

3.2 3.2log4j.properties 文件

### 设置###

log4j.rootLogger = debug,stdout,D,E,database

### 输出信息到控制抬 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

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

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = E://logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

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

### 输出ERROR 级别以上的日志到=E://logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =E://logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

log4j.appender.E.layout = org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

############ 输出到数据库logginfo表############

log4j.appender.database.Threshold=info

#定义什么级别的错误将写入到数据库中

log4j.appender.database.BufferSize=1

#设置缓存大小,就是当有1条日志信息时才往数据库插一次

log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.database.driver=oracle.jdbc.OracleDriver

#设置要将日志插入到数据库的驱动

log4j.appender.database.URL=jdbc:oracle:thin:@47.106.161.174:1521:orcl

log4j.appender.database.user=tom

log4j.appender.database.password=tom

log4j.appender.database.sql=insert into loginfo (Class,Mothod,createTime,LogLevel,MSG) values ('%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')

log4j.appender.database.layout=org.apache.log4j.PatternLayout

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值