java log4j 写日志_Java log4j同时写入文本日志和数据库日志
版權(quán)聲明:轉(zhuǎn)載原創(chuàng)文章請(qǐng)以超鏈接形式請(qǐng)注明原文章出處,尊重作者,尊重原創(chuàng)!
恰飯廣告
Log4jUtil.java
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
public class Log4jUtil {
private static Logger logger = Logger.getLogger(Log4jUtil.class.getName());
/**
* 增刪改動(dòng)作的日志寫入 (誰 操作 什么)
* @param op 用戶操作
* @param param 傳入?yún)?shù)
*/
public static void logInfo(String op, String param) {
if( (op.equals("")||op==null) || (param.equals("")||param==null)){
System.out.println("沒有參數(shù)傳入");
}
else{
MDC.put("user", "session.id"); // 用戶id
MDC.put("operation", op); // 用戶操作
MDC.put("param", param); // 接收參數(shù)
logger.info("");
MDC.remove("user");
MDC.remove("operation");
MDC.remove("param");
}
}
/**
* 發(fā)生異常的日志寫入
* @param ex 異常信息
*/
public static void logError(String ex) {
logger.error(ex);
}
}
log4j.properties(放在src目錄下)
### 設(shè)置級(jí)別和目的地(這里多個(gè)目的地) ###
log4j.rootLogger = CONSOLE,InfoLog,ErrorLog,logDB
### 輸出到控制臺(tái) ###
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L [%t:%r]- %m%n
### 輸出文件info ###
log4j.logger.infolog = InfoLog
log4j.appender.InfoLog = org.apache.log4j.DailyRollingFileAppender
log4j.appender.InfoLog.File = logs/info.log
log4j.appender.InfoLog.Append = true
log4j.appender.InfoLog.Threshold = INFO
log4j.appender.InfoLog.DatePattern = '.'yyyy-MM
log4j.appender.InfoLog.layout = org.apache.log4j.PatternLayout
log4j.appender.InfoLog.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] - [%X{user} %X{operation} %X{param}] - %m%n
### 輸出文件error ###
log4j.logger.errorlog = ErrorLog
log4j.appender.ErrorLog = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ErrorLog.File = logs/error.log
log4j.appender.ErrorLog.Append = true
log4j.appender.ErrorLog.Threshold = ERROR
log4j.appender.ErrorLog.DatePattern = '.'yyyy-MM
log4j.appender.ErrorLog.layout = org.apache.log4j.PatternLayout
log4j.appender.ErrorLog.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] - [%X{user} %X{operation} %X{param} - %m%n
#將日志輸出到SQLserver數(shù)據(jù)庫
log4j.appender.logDB = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDB.layout = org.apache.log4j.PatternLayout
log4j.appender.logDB.Driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
log4j.appender.logDB.URL = jdbc:sqlserver://localhost:1433;DatabaseName=hibernatetest
log4j.appender.logDB.User = sa
log4j.appender.logDB.Password = 123456
log4j.appender.logDB.Sql =INSERT INTO T_Log(create_date,[level],category,file_name,thread_name,line,all_category,message,[user],operation,param)values('%d{yyyy-MM-dd HH\:mm\:ss}','%p','%c','%F','%t','%L','%l','%m','%X{user}','%X{operation}','%X{param}')
Sql腳本(SQL Server)
CREATE TABLE [dbo].[T_Log](
[id] [int] IDENTITY(1,1) NOT NULL,
[create_date] [datetime] NULL,
[level] [varchar](50) NULL,
[category] [varchar](50) NULL,
[file_name] [varchar](50) NULL,
[thread_name] [varchar](50) NULL,
[line] [int] NULL,
[all_category] [varchar](50) NULL,
[message] [varchar](50) NULL,
[user] [varchar](50) NULL,
[operation] [varchar](50) NULL,
[param] [varchar](50) NULL,
CONSTRAINT [PK_T_Log] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
相關(guān)jar包
log4j.jar、mssql-jdbc.jar
注意:
log4j.properties文件的數(shù)據(jù)庫連接根據(jù)自己的數(shù)據(jù)庫來
讓我恰個(gè)飯吧.ヘ( ̄ω ̄ヘ)
支付寶 ——————- 微信
恰飯廣告
總結(jié)
以上是生活随笔為你收集整理的java log4j 写日志_Java log4j同时写入文本日志和数据库日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纯java分布式内存数据库_最新Java
- 下一篇: java7代码示例_Java中的七种排序