Log4J寫入到SQL SERVER資料庫中, 單引號錯誤解決辦法
Log4j之重寫JDBCAppender
新建類:MyLoggingEvent , 來轉換單引號
/**
*
*/
package com.hr.core;
import org.apache.log4j.Category;
import org.apache.log4j.Priority;
import org.apache.log4j.spi.LoggingEvent;
/**
* @author zhong
*
*/
public class MyLoggingEvent extends LoggingEvent {
private static final long serialVersionUID = -1405129465403337629L;
public MyLoggingEvent(String fqnOfCategoryClass, Category logger, Priority level, Object message, Throwable throwable) {
super(fqnOfCategoryClass, logger, level, message, throwable);
// TODO Auto-generated constructor stub
}
public String getThreadName () {
// TODO Auto-generated method stub
String thrdName=super.getThreadName();
if(thrdName.indexOf("'")!=-1){
thrdName=thrdName.replaceAll("'", "''");
}
return thrdName;
}
public String getRenderedMessage() {
String msg=super.getRenderedMessage();
if (msg.indexOf("'")!=-1){
msg=msg.replaceAll("'", "''");
}
return msg;
}
}
新建類:MyJDBCAppender , 來解發重寫方法的呼叫
/**
*
*/
package com.hr.core;
import org.apache.log4j.Category;
import org.apache.log4j.Priority;
import org.apache.log4j.jdbc.JDBCAppender;
import org.apache.log4j.spi.LoggingEvent;
/**
* @author zhong
*
*/
public class MyJDBCAppender extends JDBCAppender {
protected String getLogStatement(LoggingEvent event) {
String fqnOfCategoryClass=event.fqnOfCategoryClass;
Category logger=Category.getRoot();
Priority level=event.level;
Object message=event.getMessage();
Throwable throwable=null;
MyLoggingEvent bEvent=new MyLoggingEvent(fqnOfCategoryClass,logger,level,message,throwable);
return super.getLogStatement(bEvent);
}
}
附: log4j.properties 配置
log4j.rootCategory=INFO,A3,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss,SSS}%m%n
log4j.logger.Java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout,logfile,A3
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/hr_log.log
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n
#
log4j.appender.A3=com.hr.core.MyJDBCAppender
log4j.appender.A3.URL=jdbc\:sqlserver\://localhost\:1433;DatabaseName\=zhaochi_1
log4j.appender.A3.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
log4j.appender.A3.user=sa
log4j.appender.A3.password=pwterp
#
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,grade,class,message) values('%d','%t','%-5p','%c','%m')
相關推薦
Log4J寫入到SQL SERVER資料庫中, 單引號錯誤解決辦法
Log4j之重寫JDBCAppender 新建類:MyLoggingEvent , 來轉換單引號 /** * */ package com.hr.core; import org.apach
Sql Server添加單引號
問題 convert 分享圖片 單引號 .cn alt har top www. " ‘ "(單引號)的運用:在sql server中,兩個" ‘ "(單引號)在拼接字符串的情況下運用,就是表示拼接上了一個" ‘ "單引號字符串。 SELECT TOP 1 ‘‘‘‘+C
BCP工具的使用以及C++,SQL server資料庫中呼叫命令列的方法
BCP工具使用: BCP是由SYBASE公司提供的,專門用於資料庫表一級資料備份的工具。 主要引數如下: 基本用法: 遠端地址1的資料庫表student 匯出到本地(遠端ip1(10.189.1.1) ): bcp run.dbo.student out "c:\student
C#將圖片存放到SQL SERVER資料庫中的方法
本文例項講述了C#將圖片存放到SQL SERVER資料庫中的方法。分享給大家供大家參考。具體如下: 第一步: //獲取當前選擇的圖片 this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFil
sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度 sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度
sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度 smallint 是一種精確的數值資料型別,其精度在算術運算後不變,採用2個位元組編碼 有符號的 smallint 值的範圍是 -2^15-------2^15 -
將word文件資料匯入到sql server資料庫中
我現在的需求是這樣的,需要將這些題目插入到sql server資料庫中。 並且要對應起來,一開始在網上找了很多方法,都沒有找到合適的。 後面感覺,還是自己寫一個比較好,因為只有自己寫的,才是最適合你的! 於是就開始倒騰。 1、首先是讀取word中的資料,在我上
用Java向SQL Server資料庫中插入float資料報錯An error occurred while converting the Float value to JDBC data type
作者:翁鬆秀 用Java向SQL Server資料庫中插入float資料報錯 用Java向SQL Server資料庫中插入float資料報錯
C#同步SQL Server資料庫中的資料–資料庫同步工具[同步新資料]
C#同步SQL Server資料庫中的資料1. 先寫個sql處理類:using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Text; namespace
SQL Server資料庫中的資料–資料庫同步工具[同步新資料]
C#同步SQL Server資料庫中的資料1. 先寫個sql處理類:using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Text; namespace
Sql Server資料庫中Identity型別欄位的使用
大家在建立資料庫的時候肯定是經常使用Identity標識欄位型別的。下面就介紹兩個使用這種型別欄位的小技巧。 1.讓標識欄位從指定的數字開始計數: DBCC checkident (TableName,reseed,計數值-1) 如:讓customers表重新從1開始計數 d
sql server資料庫 從單使用者模式改為多使用者模式
今天想在sql server2005下複製一個數據庫,結果最後一步出錯,複製沒成功反而導致資料庫打不開了, 名稱後出現“單個使用者”,估計是進行復制的時候自動將其改為了單使用者模式,可通過執行如下語句恢復多使用者模式。 原理是先kill佔用了資料庫的那個程序,然後設定資料庫
如何把EXCEL資料匯入到SQL SERVER資料庫中
在我們完成一個專案開發之後,通常我們需要把客戶的很多資料匯入到資料庫中,面對大量的資料匯入工作,人工匯入肯定是不現實,但是這些又是不得不完成的工作,怎麼辦呢?我們可以利用資料庫管理工具提供的資料匯入的功能即可。我們這裡以SQL SERVE2008為例。SQLSERVER2
SQL Server資料庫中查詢含有某個欄位的表及該表記錄條數
SELECT object_name(sc.id) as TableName, sc.Name as ColumnName, si.rows as RowCounts FROM SysColumns sc LEFT JOIN SysObjects so ON sc.id =
將ACCESS資料庫資料轉到SQL server資料庫中(通用)
把ACCESS資料庫轉換成SQL server資料庫,ACCESSH和SQL server都有很多不同的版本,但是轉換也都大同小易,和這裡我給大家說說最常見的怎麼將ACCESS轉化成SQL server的方法和步驟 1、開啟計算機”控制面板“下的”管理工具“中的”資料庫源“
Sql Server資料庫中的更新表名、列名、列值
更新表名: execsp_rename'舊錶名','新表名' 更新列名: exec sp_rename '表名.[欄位原名]','欄位新名','column'
sql server 2005 使用者、組或角色在當前資料庫中已存在的解決辦法
在SQL SERVER 中附加一個其他伺服器上遷移過來讓資料庫後,建立登入名與資料庫使用者對映時出現如標題錯誤。 解決方法如下: sp_change_users_login 'update_one', 'wzjr', 'wzjr' sp_change_users_logi
如何所ACCESS資料庫的資料新增到SQL SERVER資料庫中?
前提條件:1.假設Access連線字 符串為:string m_accConnection = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=/somepath/mydb.mdb;User Id=admin;Password=;" 遠端sql server伺服器的連
excel匯入到sql server資料庫中
遇到的問題,標題: SQL Server 匯入和匯出嚮導 ------------------------------ 操作無法完成。 ------------------------------ 其他資訊: ConnectionString 屬性尚未初始化。 (System.Data) -----
C#中將DataGrid上的修改同步到SQL Server資料庫中
關於資料庫與DataGrid的同步問題,要記住這句話: sqlDataadapter的作用是實現DataTable和DB之間的橋樑 1、資料更新機制 當呼叫SqlDataAdapter.Update()時,檢查DataSet中的所有行,然後對每一個修改過的R
SQL Server資料庫複製嚮導報錯解決
今天利用資料庫複製嚮導(Copy Database Wizard)將2012版本的資料庫複製到2014時,遇到了一些錯誤,並最終解決,特此記錄: 資料庫相容級別的有效值為 100、110 或 120 源資料庫相容性級別太低,改高一點即可 物件名XXX無