log4j.rootLogger=info, ServerDailyRollingFile, stdout ,logDB #這一個爲文件輸出,而且Daily log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd log4j.appender.ServerDailyRollingFile.File=D://logs/notify-subscription.log log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n log4j.appender.ServerDailyRollingFile.Append=true #這一個是配置console輸出 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n #這一個爲配置mysql log4j.appender.logDB = org.apache.log4j.jdbc.JDBCAppender log4j.appender.logDB.layout = org.apache.log4j.PatternLayout log4j.appender.logDB.Driver = com.mysql.jdbc.Driver log4j.appender.logDB.URL = jdbc:mysql://127.0.0.1:3306/imooc log4j.appender.logDB.User = root log4j.appender.logDB.Password = root log4j.appender.logDB.Sql = INSERT INTO T_log4j(project_name,create_date,level,category,file_name,thread_name,line,all_category,message)values('Struts2','%d{yyyy-MM- ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')
static Logger log = Logger.getLogger(Main.class); public static void main(String[] args) throws FileNotFoundException, IOException { String dailySqlString = "INSERT INTO T_log4j_" + GetNowDate() + "(project_name,create_date,level,category,file_name,thread_name,line,all_category,message)" + "values('Struts2','%d{yyyy-MM-ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')"; Properties properties = new Properties(); properties.load(new FileInputStream("log4j.properties")); properties.setProperty("log4j.appender.logDB.Sql", dailySqlString); PropertyConfigurator.configure(properties); //如下爲測試 try { double a = 1 / 0; } catch (Exception e) { log.error(e); } } //其中GetNowDate用來獲取當前時間: public static String GetNowDate() { String temp_str = ""; Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); temp_str = sdf.format(dt); return temp_str; }
3.結果
java