怎麼查找日誌配置java-九游会j9娱乐平台
❶ java日誌
首先,在項目中的classes 中新建立一個log4j.properties文件即可;
在實際編程時,要使log4j真正在系統中運行事先還要對配置文件進行定義。定義步驟就是對logger、appender及layout的分別使用。log4j支持兩種配置文件格式,一種是xml格式的文件,一種是java properties(key=value)【java特性文件(鍵=值)】。(這里只說明properties文件)
1、配置根logger
其語法為:
log4j.rootlogger = [ level ] , appendername1, appendername2, …
level : 是日誌記錄的優先順序,分為off、fatal、error、warn、info、debug、all或者您定義的級別。log4j建議只使用四個級別,優先順序從高到低分別是error、warn、info、debug。通過在這里定義的級別,您可以控制到應用程序中相應級別的日誌信息的開關。比如在這里定義了info級別,則應用程序中所有debug級別的日誌信息將不被列印出來。appendername:就是指定日誌信息輸出到哪個地方。您可以同時指定多個輸出目的地。
例如:log4j.rootlogger=info,a1,b2,c3
2、配置日誌信息輸出目的地
其語法為:
log4j.appender.appendername = fully.qualified.name.of.appender.class //
"fully.qualified.name.of.appender.class" 可以指定下面五個目的地中的一個:
1.org.apache.log4j.consoleappender(控制台)
2.org.apache.log4j.fileappender(文件)
3.org.apache.log4j.dailyrollingfileappender(每天產生一個日誌文件)
4.org.apache.log4j.rollingfileappender(文件大小到達指定尺寸的時候產生一個新的文件)
5.org.apache.log4j.writerappender(將日誌信息以流格式發送到任意指定的地方)
1.consoleappender選項
threshold=warn:指定日誌消息的輸出最低層次。
immediateflush=true:默認值是true,意謂著所有的消息都會被立即輸出。
target=system.err:默認情況下是:system.out,指定輸出控制台
2.fileappender 選項
threshold=warn:指定日誌消息的輸出最低層次。
immediateflush=true:默認值是true,意謂著所有的消息都會被立即輸出。
file=mylog.txt:指定消息輸出到mylog.txt文件。
append=false:默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容。
3.dailyrollingfileappender 選項
threshold=warn:指定日誌消息的輸出最低層次。
immediateflush=true:默認值是true,意謂著所有的消息都會被立即輸出。
file=mylog.txt:指定消息輸出到mylog.txt文件。
append=false:默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容。
datepattern=''.''yyyy-ww:每周滾動一次文件,即每周產生一個新的文件。當然也可以指定按月、周、天、時和分。即對應的格式如下:
1)''.''yyyy-mm: 每月
2)''.''yyyy-ww: 每周
3)''.''yyyy-mm-dd: 每天
4)''.''yyyy-mm-dd-a: 每天兩次
5)''.''yyyy-mm-dd-hh: 每小時
6)''.''yyyy-mm-dd-hh-mm: 每分鍾
4.rollingfileappender 選項
threshold=warn:指定日誌消息的輸出最低層次。
immediateflush=true:默認值是true,意謂著所有的消息都會被立即輸出。
file=mylog.txt:指定消息輸出到mylog.txt文件。
append=false:默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容。
maxfilesize=100kb: 後綴可以是kb, mb 或者是 gb. 在日誌文件到達該大小時,將會自動滾動,即將原來的內容移到mylog.log.1文件。
maxbackupindex=2:指定可以產生的滾動文件的最大數。
3、配置日誌信息的格式
其語法為:
1). log4j.appender.appendername.layout = fully.qualified.name.of.layout.class
"fully.qualified.name.of.layout.class" 可以指定下面4個格式中的一個:
1.org.apache.log4j.htmllayout(以html表格形式布局),
2.org.apache.log4j.patternlayout(可以靈活地指定布局模式),
3.org.apache.log4j.simplelayout(包含日誌信息的級別和信息字元串),
4.org.apache.log4j.ttcclayout(包含日誌產生的時間、線程、類別等等信息)
1.htmllayout 選項
locationinfo=true:默認值是false,輸出java文件名稱和行號
title=my app file: 默認值是 log4j log messages.
2.patternlayout 選項
conversionpattern=%m%n :指定怎樣格式化指定的消息。
3.xmllayout 選項
locationinfo=true:默認值是false,輸出java文件和行號
2). log4j.appender.a1.layout.conversionpattern=%-4r %-5p %d{yyyy-mm-dd hh:mm:sss} %c %m%n
這里需要說明的就是日誌信息格式中幾個符號所代表的含義:
-x號: x信息輸出時左對齊;
%p: 輸出日誌信息優先順序,即debug,info,warn,error,fatal,
%d: 輸出日誌時間點的日期或時間,默認格式為iso8601,也可以在其後指定格式,比如:%d{yyy mmm dd hh:mm:ss,sss},輸出類似:2002年10月18日 22:10:28,921
%r: 輸出自應用啟動到輸出該log信息耗費的毫秒數
%c: 輸出日誌信息所屬的類目,通常就是所在類的全名
%t: 輸出產生該日誌事件的線程名
%l: 輸出日誌事件的發生位置,相當於%c.%m(%f:%l)的組合,包括類目名、發生的線程,以及在代碼中的行數。舉例:testlog4.main(testlog4.java:10)
%x: 輸出和當前線程相關聯的ndc(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。
%%: 輸出一個"%"字元
%f: 輸出日誌消息產生時所在的文件名稱
%l: 輸出代碼中的行號
%m: 輸出代碼中指定的消息,產生的日誌具體信息
%n: 輸出一個回車換行符,windows平台為"
",unix平台為"
"輸出日誌信息換行
可以在%與模式字元之間加上修飾符來控制其最小寬度、最大寬度、和文本的對齊方式。如:
1) c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,默認的情況下右對齊。
2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,"-"號指定左對齊。
3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大於30的話,就會將左邊多出的字元截掉,但小於30的話也不會有空格。
4) .30c:如果category的名稱小於20就補空格,並且右對齊,如果其名稱長於30字元,就從左邊交遠銷出的字元截掉
比較詳細的例子
log4j.rootlogger=info,consoleappender,logfile,mail
log4j.addivity.org.apache=true
#consoleappender,控制台輸出
#fileappender,文件日誌輸出
#smtpappender,發郵件輸出日誌
#socketappender,socket日誌
#nteventlogappender,window nt日誌
#syslogappender,
#jmsappender,
#asyncappender,
#nullappender
#文件輸出:rollingfileappender
#log4j.rootlogger = info,logfile
log4j.appender.logfile = org.apache.log4j.rollingfileappender
log4j.appender.logfile.threshold = info
# 輸出以上的info信息
log4j.appender.logfile.file = info_log.html
#保存log文件路徑
log4j.appender.logfile.append = true
# 默認為true,添加到末尾,false在每次啟動時進行覆蓋
log4j.appender.logfile.maxfilesize = 1mb
# 一個log文件的大小,超過這個大小就又會生成1個日誌 # kb ,mb,gb
log4j.appender.logfile.maxbackupindex = 3
# 最多保存3個文件備份
log4j.appender.logfile.layout = org.apache.log4j.htmllayout
# 輸出文件的格式
log4j.appender.logfile.layout.locationinfo = true
#是否顯示類名和行數
log4j.appender.logfile.layout.title =title:\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8bef
#html頁面的 < title >
############################## samplelayout ####################################
# log4j.appender.logfile.layout = org.apache.log4j.samplelayout
############################## patternlayout ###################################
# log4j.appender.logfile.layout = org.apache.log4j.patternlayout
# log4j.appender.logfile.layout.conversionpattern =% d % p [ % c] - % m % n % d
############################## xmllayout #######################################
# log4j.appender.logfile.layout = org.apache.log4j.xmllayout
# log4j.appender.logfile.layout.locationinfo = true #是否顯示類名和行數
############################## ttcclayout ######################################
# log4j.appender.logfile.layout = org.apache.log4j.ttcclayout
# log4j.appender.logfile.layout.dateformat = iso8601
#null, relative, absolute, date or iso8601.
# log4j.appender.logfile.layout.timezoneid = gmt - 8 : 00
# log4j.appender.logfile.layout.categoryprefixing = false ##默認為true 列印類別名
# log4j.appender.logfile.layout.contextprinting = false ##默認為true 列印上下文信息
# log4j.appender.logfile.layout.threadprinting = false ##默認為true 列印線程名
# 列印信息如下:
#2007 - 09 - 13 14 : 45 : 39 , 765 [http - 8080 - 1 ] error com.poxool.test.test - error成功關閉鏈接
###############################################################################
#每天文件的輸出:dailyrollingfileappender
#log4j.rootlogger = info,errorlogfile
log4j.appender.errorlogfile = org.apache.log4j.dailyrollingfileappender
log4j.appender.errorlogfile.threshold = error
log4j.appender.errorlogfile.file = ../logs/error_log
log4j.appender.errorlogfile.append = true
#默認為true,添加到末尾,false在每次啟動時進行覆蓋
log4j.appender.errorlogfile.immediateflush = true
#直接輸出,不進行緩存
# ' . ' yyyy - mm: 每個月更新一個log日誌
# ' . ' yyyy - ww: 每個星期更新一個log日誌
# ' . ' yyyy - mm - dd: 每天更新一個log日誌
# ' . ' yyyy - mm - dd - a: 每天的午夜和正午更新一個log日誌
# ' . ' yyyy - mm - dd - hh: 每小時更新一個log日誌
# ' . ' yyyy - mm - dd - hh - mm: 每分鍾更新一個log日誌
log4j.appender.errorlogfile.datepattern = ' . ' yyyy - mm - dd ' .log '
#文件名稱的格式
log4j.appender.errorlogfile.layout = org.apache.log4j.patternlayout
log4j.appender.errorlogfile.layout.conversionpattern =%d %p [ %c] - %m %n %d
#控制台輸出:
#log4j.rootlogger = info,consoleappender
log4j.appender.consoleappender = org.apache.log4j.consoleappender
log4j.appender.consoleappender.threshold = error
log4j.appender.consoleappender.layout = org.apache.log4j.patternlayout
log4j.appender.consoleappender.layout.conversionpattern =%d %-5p %m %n
log4j.appender.consoleappender.immediateflush = true
# 直接輸出,不進行緩存
log4j.appender.consoleappender.target = system.err
# 默認是system.out方式輸出
#發送郵件:smtpappender
#log4j.rootlogger = info,mail
log4j.appender.mail = org.apache.log4j.net.smtpappender
log4j.appender.mail.threshold = info
log4j.appender.mail.buffersize = 10
log4j.appender.mail.from = [email protected]
log4j.appender.mail.smtphost = smtp.gmail.com
log4j.appender.mail.subject = log4j message
log4j.appender.mail.to = [email protected]
log4j.appender.mail.layout = org.apache.log4j.patternlayout
log4j.appender.mail.layout.conversionpattern =%d - %c -%-4r [%t] %-5p %c %x - %m %n
#資料庫:jdbcappender
log4j.appender.database = org.apache.log4j.jdbc.jdbcappender
log4j.appender.database.url = jdbc:oracle:thin:@ 210.51 . 173.94 : 1521 :ydb
log4j.appender.database.driver = oracle.jdbc.driver.oracledriver
log4j.appender.database.user = ydbuser
log4j.appender.database.password = ydbuser
log4j.appender.database.sql = insert into a1 (title3) values ( ' %d - %c %-5p %c %x - %m%n ' )
log4j.appender.database.layout = org.apache.log4j.patternlayout
log4j.appender.database.layout.conversionpattern =% d - % c -%- 4r [ % t] %- 5p % c % x - % m % n
#資料庫的鏈接會有問題,可以重寫org.apache.log4j.jdbc.jdbcappender的getconnection() 使用資料庫鏈接池去得鏈接,可以避免insert一條就鏈接一次資料庫
❷ java伺服器某段時間cpu高怎麼拿到日誌
當java伺服器出現cpu高的情況,一般是因為當前執行的代碼或者線程對cpu的消耗過高,導致伺服器負載過大。為了查找原因並解決問題,需要拿到伺服器的相關日誌,可以採用以下幾種方法:1.查看操作系統的系統日誌,查找對應時間段的信息,如果系統日誌中發現java進程異常的信息,可以確認具體是哪個線程或哪段代碼引起了cpu過高的問題。2.可以使用java自帶的jstack工具分析mp出來的線程快照信息,查看程序運行時所有線程的堆棧信息,定位到執行過程中的具體方法、類等信息,從而確認代碼出現的問題。3.使用工具進行分析,可以使用非常流行的各種分析工具,例如visualvm、jprofiler、jmc、jconsole等,其中visualvm和jprofiler比較常用,可以通過這些工具實時監控程序的運行狀態,找到並解決問題。總之,當java伺服器cpu高的情況出現時,需要針對性地分析各種日誌信息,找出程序運行時的問題點,並進行調整優化,才能使伺服器的性能得到提升。
❸ java中如何使用log4j將記錄的操作日誌信息
主要是通過配置文件
1.1 log4j 支持兩種配置文件格式,一種是 xml 格式的文件,一種是 java 特性文件 lg4j.properties (鍵 = 值)。
logger 負責處理日誌記錄的大部分操作。
其語法為:
log4j.rootlogger = [ level ] , appendername, appendername, …
2.1 level 是日誌記錄的優先順序,分為 off 、 fatal 、 error 、 warn 、 info 、 debug 、 all
或者自定義的級別。2.2log4j 建議只使用四個級別,優先順序從高到低分別是 error 、 warn 、 info 、 debug
。2.3通過在這里定義的級別,您可以控制到應用程序中相應級別的日誌信息的開關。比如在這里定義了
info 級別,只有等於及高於這個級別的才進行處理,則應用程序中所有 debug 級別的日誌信息將不被列印出來。2.4 all: 列印所有的日誌,
off :關閉所有的日誌輸出。 appendername 就是指定日誌信息輸出到哪個地方。可同時指定多個輸出目的地。配置日誌信息輸出目的地 appender 負責控制日誌記錄操作的輸出。
3.1log4j.appender.appendername = fully.qualified.name.of.appender.class
3.2log4j.appender.appendername.option1 = value1
3.3log4j.appender.appendername.optionn = valuenlog4j 提供的 appender
4.1org.apache.log4j.consoleappender (控制台),
4.2org.apache.log4j.fileappender (文件),
4.3org.apache.log4j.dailyrollingfileappender (每天產生一個日誌文件),
4.4org.apache.log4j.rollingfileappender
(文件大小到達指定尺寸的時候產生一個新的文件),可通過 log4j.appender.r.maxfilesize=100kb
設置文件大小,還可通過 4.5log4j.appender.r.maxbackupindex=1 設置為保存一個備份文件。
4.6org.apache.log4j.writerappender (將日誌信息以流格式發送到任意指定的地方)5.layout
5.1org.apache.log4j.htmllayout (以 html 表格形式布局),
5.2org.apache.log4j.patternlayout (可以靈活地指定布局模式),
5.3org.apache.log4j.simplelayout (包含日誌信息的級別和信息字元串),
5.4org.apache.log4j.ttcclayout (包含日誌產生的時間、線程、類別等等信息) 6.格式化日誌信息
log4j 採用類似 c 語言中的 printf 函數的列印格式格式化日誌信息,列印參數如下:
6.1%m 輸出代碼中指定的消息
6.2%p 輸出優先順序,即 debug , info , warn , error , fatal
6.3%r 輸出自應用啟動到輸出該 log 信息耗費的毫秒數
6.4%c 輸出所屬的類目,通常就是所在類的全名
6.5%t 輸出產生該日誌事件的線程名
6.6%n 輸出一個回車換行符, windows 平台為 「rn」 , unix 平台為 「n」
6.7%d 輸出日誌時間點的日期或時間,默認格式為 iso8601 ,也可以在其後指定格式,比如: %d{yyyy mmm dd hh:mm:ss,sss} ,輸出類似: 2002 年 10 月 18 日 22 : 10 : 28 , 921
6.8%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。 7. log4j.propertie 示例文件:
log4j.rootcategory=info, stdout,file
7.1 定義名為 stdout 的輸出端的類型
log4j.appender.stdout=org.apache.log4j.consoleappender
log4j.appender.stdout.layout=org.apache.log4j.patternlayout
log4j.appender.stdout.layout.conversionpattern=[qc] %p [%t] %c.%m(%l) | %m%n
7.2定義名為 file 的輸出端的類型為每天產生一個日誌文件。
log4j.appender.file =org.apache.log4j.dailyrollingfileappender
log4j.appender.file.file=log.txt
log4j.appender.file.layout=org.apache.log4j.patternlayout
log4j.appender.file.layout.conversionpattern=%d-[ts] %p %t %c - %m%n
7.3指定 com.neusoft 包下的所有類的等級為 debug 。可以把 com.neusoft 改為自己項目所用的包名。
log4j.logger.com.neusoft=debug
7.4如果項目中沒有配置 ehcache ,則配置以下兩句為 error 。
log4j.logger.com.opensymphony.oscache=error
log4j.logger.net.sf.navigator=error
8struts 配置
log4j.logger.org.apache.commons=error
log4j.logger.org.apache.struts=warn
8.1 displaytag 配置
log4j.logger.org.displaytag=error
8.2 spring 配置
log4j.logger.org.springframework=debug
8.3 ibatis 配置
log4j.logger.com.ibatis.db=warn
8.4 hibernate 配置
log4j.logger.org.hibernate=debug log4j.logger.org.apache.velocity=fatal
log4j.logger.com.canoo.webtest=warn
❹ java的日誌輸出到哪裡了
你在哪裡執行的你的java程序呢 如果是在dos窗口下執行的 就直接會輸出到dos窗口 如果是在eclipse或者jb下運行的 那日誌就會在你的控制台窗口「console」中