導航:首頁 > 編程系統 > linuxlog4j亂碼

linuxlog4j亂碼

發布時間:2023-08-22 14:38:32

linuxjava運行出錯

你的log4j配置文件有錯誤,你看看你的log4j用的是properties文件還是xml文件,在裡面搜manager,把相關的段刪掉就ok了

❷ 使用JDBC向mysql資料庫插入中文亂碼如何解決url、資料庫屬性和workspace的編碼庫均設成utf-8,始終亂碼

String sql ="insert into userinfo(name,pwd) values(?,?)";

PreparedStatementpst=getConnection().prepareStatement(sql);

pst.setString(1,"小明");

pst.setString(2,"123");

pst.executeUpdate();

小夥子給你寫了一個通用的增刪改查的工具類,你那樣寫太麻煩

資源文件jdbc.properties

jdbc.Driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/xxx
jdbc.username=root
jdbc.password=root

packagecom.;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Properties;

importorg.apache.commons.beanutils.BeanUtils;
importorg.apache.log4j.Logger;

publicclassBaseDao{

privatestaticStringDRIVDR;
privatestaticStringURL;
privatestaticStringUSER;
privatestaticStringPWD;
;
=newProperties();
privatestaticLoggerlogger=Logger.getLogger(BaseDao.class);
;
privatestaticResultSetrs;
privatestaticfinalStringCLASS_NOT_EXCEPTION="驅動載入失敗";

static{
try{
properties.load(BaseDao.class.getResourceAsStream("/jdbc.properties"));
DRIVDR=properties.getProperty("jdbc.Driver");
URL=properties.getProperty("jdbc.url");
USER=properties.getProperty("jdbc.username");
PWD=properties.getProperty("jdbc.password");
Class.forName(DRIVDR);
}catch(Exceptione){
logger.debug(CLASS_NOT_EXCEPTION+e.getMessage());
}

}

/**
*通用的增刪改
*
*@paramsql
*@paramargs
*@return
*/
publicstaticintexecuteCommand(Stringsql,Object...args){
intm=0;
try{
initPreparedStatement(sql,args);
m=pst.executeUpdate();
}catch(Exceptione){
logger.debug("執行增、刪、該。錯誤。。請檢查preparedStatement參數。。。"+e.getMessage());
}finally{
closeAll(null,pst,connection);
}
returnm;
}

(Stringsql,Object...args){
try{
pst=getConnection().prepareStatement(sql);
if(args!=null){
for(inti=0;i<args.length;i++){
pst.setObject(i+1,args[i]);
}
}

}catch(Exceptione){
logger.debug("為pst對象賦值錯誤。。請檢查preparedStatement參數。。。"+e.getMessage());
}
returnpst;
}
/**
*通用的執行聚合函數
*@paramsql
*@paramargs
*@return
*/
publicstaticintexecuteScalare(Stringsql,Object...args){
intcount=0;
initPreparedStatement(sql,args);
try{
rs=pst.executeQuery();
if(rs.next()){
count=rs.getInt(1);
}
}catch(SQLExceptione){
logger.debug("執行聚合函數出錯。。。請檢查preparedStatement參數。。。"+e.getMessage());
}finally{
closeAll(rs,pst,connection);
}
returncount;

}


/**
*根據id查詢單個對象
*@paramsql
*@paramclazz
*@paramargs
*@return
*/
publicstatic<T>TfindById(Stringsql,Class<T>clazz,Object...args){
Tt=null;
try{
initPreparedStatement(sql,args);
rs=pst.executeQuery();

ResultSetMetaDatametaData=rs.getMetaData();
//以上的代碼:獲取元數據(各個欄位的數據類型)
intcount=metaData.getColumnCount();
//獲取欄位的數量

if(rs.next()){
try{
t=clazz.newInstance();//利用反射自動創建對象的類型的對象User.classUser
//u=newUser();
for(inti=1;i<=count;i++){
BeanUtils.Property(t,metaData.getColumnName(i),rs.getObject(i));
//自動獲取各個欄位的名稱並獲取該欄位的值
}
}catch(Exceptione){
logger.debug("查詢單個對象,錯誤。。請檢查preparedStatement參數。。。。"+e.getMessage());
}


}

}catch(SQLExceptione){
logger.debug("查詢失敗。。。。。"+e.getMessage());
}
returnt;
}

/**
*通用的查詢
*
*@paramsql
*@paramclazz
*@paramargs
*@return
*/
publicstatic<T>List<T>findAll(Stringsql,Class<T>clazz,Object...args){
List<T>list=newArrayList<T>(100);
Tt=null;
try{
initPreparedStatement(sql,args);
rs=pst.executeQuery();

ResultSetMetaDatametaData=rs.getMetaData();
//以上的代碼:獲取元數據(各個欄位的數據類型)
intcount=metaData.getColumnCount();
//獲取欄位的數量

while(rs.next()){
try{
t=clazz.newInstance();//利用反射自動創建對象的類型的對象User.classUser
//u=newUser();
for(inti=1;i<=count;i++){
BeanUtils.Property(t,metaData.getColumnName(i),rs.getObject(i));
//自動獲取各個欄位的名稱並獲取該欄位的值
}
}catch(Exceptione){
logger.debug("查詢集合,錯誤。。。。。"+e.getMessage());
}

list.add(t);//將對象添加到集合中
}

}catch(SQLExceptione){
logger.debug("查詢失敗。。。。。"+e.getMessage());
}

returnlist;
}

(){
try{
if(connection==null||connection.isClosed()){
connection=DriverManager.getConnection(URL,USER,PWD);
}
}catch(SQLExceptione){
logger.debug("獲取connection失敗,請檢查配置文件!"+e.getMessage());
}
returnconnection;
}

publicstaticvoidcloseAll(ResultSetrs,PreparedStatementpst,Connectionconn){
if(rs!=null)
try{
rs.close();
}catch(SQLExceptione){
logger.debug("關閉ResultSet錯誤。。。。。"+e.getMessage());
}
if(pst!=null)
try{
pst.close();
}catch(SQLExceptione){
logger.debug("關閉PreparedStatement錯誤。。。。。"+e.getMessage());
}
if(conn!=null)
closeConnection(conn);
}

(Connectionconn){
try{
if(!conn.isClosed()){
conn.close();
}
}catch(SQLExceptione){
logger.debug("關閉Connection錯誤。。。。。"+e.getMessage());
}finally{
conn=null;
}

}

publicstaticvoidmain(String[]args){
System.out.println(BaseDao.getConnection());
}
}

❸ 在linux下配置log4j

其實主要矛盾是在linux下的物理路徑問題:

1、使用<%=application.getRealPath("/")%>測試出當前站點在系統中的絕對路徑,如:/vhost/6/6/2/net66243875/www/

2、修改輸出源中文件位置如:

# 每天新建日誌
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=/vhost/6/6/2/net66243875/www/log.txt
log4j.appender.A1.Encoding=utf-8
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n

❹ java高手幫忙看下,log4J怎麼輸入到裡面出現亂碼怎麼解決

log4j.appender.rootFileApd.Encoding=UTF-8 把你的GBK換成UTF-8看看

❺ java中tomcat啟動時log4j中文亂碼如何處理

是因為輸出日誌的編碼和當前系統的編碼不一樣

❻ log4j日誌文件亂碼怎麼辦,如何解決

解決方法如下:

如果是log4j.properties為配置文件,比如:

[c-sharp]viewplain

log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.File=all.log

加入一行:

[c-sharp]viewplain

log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.Encoding=UTF-8

log4j.appender.A1.File=all.log

如果是log4j.xml為配置文件,比如:

[c-sharp]viewplain

<appendername="A1"class="org.apache.log4j.RollingFileAppender">

<paramname="File"value="all.log"/>

......

</appender>

加入一行:

[c-sharp]viewplain

<appendername="A1"class="org.apache.log4j.RollingFileAppender">

<paramname="Encoding"value="UTF-8"/>

<paramname="File"value="all.log"/>

......

</appender>

原理:

log4j通過QuietWriter寫日誌,QuietWriter extends FilterWriter,FilterWriter extends Writer,而Writer寫入的是字元流,對字元集比較敏感。英文系統一般默認latin-1字元集,只能處理半形,通過encoding指定字元集後,能夠正確輸出指定字元集的字元流。

字元集指定後,WriterAppender的setEncoding通過org.apache.log4j.config.PropertySetter.setProperties(Object obj, Properties properties, String prefix)設置字元集。

❼ linux查看日誌,如何解決字元串亂碼

主要思路有兩種抄:【1】本地客戶端編碼設置錯了如果你用的是putty 一、Linux系統的設置
1)關閉Linux的防火牆
#iptables -F
#iptables save
2)編輯/etc/sysconfig/i18n,將LANG=en_US.UTF-8改為LANG=zh_CN.UTF-8
SUPPORT=en_US.UTF-8….也作類似改動,接下來執行:
#. /etc/sysconfig/i18n
#locale (檢查本地locale)
如果看到顯示了LANG=zh_CN.UTF-8等信息,表明改動成功。【2】伺服器不支持中文字元串顯示【3】有可能是程序代碼例如log4j文件設置錯了
--------------------- 建議看看這本書《Linux就該這么學》

在Xshell、putty、SSH Secure Shell Client 等等客戶端設置utf8的編碼就可以了,在「文件」選項里點開「屬性」一項進行設置,如下圖:

❽ springboot jar包在linux下運行,log4j日誌 中文亂碼怎麼辦

解決方法:
如果是log4j.properties為配置文件專,比如:屬
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=all.log

❾ springboot jar包在linux下運行,log4j日誌 中文亂碼怎麼辦

解決方法:
如果是log4j.properties為配置文件,比如:
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=all.log

閱讀全文

與linuxlog4j亂碼相關的資料

熱點內容
蘋果ipad官方壁紙 瀏覽:154
華創網路信號怎麼樣 瀏覽:495
共享單車網站源碼 瀏覽:281
a班練琴app下載不了怎麼回事 瀏覽:349
數控中怎麼編程 瀏覽:409
vm如何安裝linux系統 瀏覽:423
歌手實績數據在哪裡看 瀏覽:691
代碼002 瀏覽:714
jdk如何編譯java文件 瀏覽:900
修改iptables配置文件 瀏覽:427
word自動保存指定文件夾 瀏覽:18
電腦畫質不清晰win10 瀏覽:912
diskgen使用教程 瀏覽:970
常州數控車編程培訓哪裡有 瀏覽:44
如何升級晴明等級 瀏覽:347
開頭是什麼文件 瀏覽:645
linux16進制看elf文件 瀏覽:663
紙檔文件怎麼能變成excel檔 瀏覽:481
迅雷下載總出現jsp 瀏覽:150
創建網頁用什麼編程語言 瀏覽:526

友情鏈接