本文目錄一覽:
- 1、4. Logging
- 2、java輸出日誌是什麼?有什麼用?
- 3、java中如何使用log4j將記錄的操作日誌信息
- 4、java開發怎麼做日誌功能 就是記錄用戶每一步的操作具體做什麼了
- 5、java日誌
4. Logging
SpringBoot 內部使用 Commons Logging 日誌記錄器但是保留的對外擴展功能。默認提供 Java Util Logging、Log4j2、Logback。為Java Util日誌記錄、Log4J2和Logback提供了默認配置。在每種情況下,日誌記錄器都預先配置為使用控制台輸出,並提供可選的文件輸出。
默認,如果你使用 starters,使用 logback 進行日誌記錄。還包括適當的Logback路由,以確保使用Java Util Logging,Commons Logging,Log4J或SLF4J的從屬庫均能正常工作
默認日誌輸出內容如下所示:
默認的日誌配置將信息打印到控制台。默認情況下會記錄 ERROR,WARN,INFO 級別的消息。你可以在啟動應用程序時使用 –debug 命令來啟動 debug 模式。
當啟用 debug 模式時,一組核心記錄器會配置打印出更多的信息。Enabling the debug mode does not configure your application to log all messages with DEBUG level.
或者你可以選擇啟用 trace 模式,通過命令行的 –trace 或者 在 application.properties 中添加 trace=true。Doing so enables trace logging for a selection of core loggers (embedded container, Hibernate schema generation, and the whole Spring portfolio).
如果你的 命令行知識 ANSI 編碼,可以輸出帶有顏色的日誌以便提高可讀性。你可以使用 spring.output.ansi.enabled = ALWAYS|DETECT|NEVER 的值來重寫自動檢測。
顏色編碼是通過使用%clr轉換字來配置的。在其最簡單的形式中,轉換器根據日誌級別對輸出進行着色,如下面的示例所示:
The following table describes the mapping of log levels to colors:
或者,您可以指定應該使用的顏色或樣式,將其作為轉換的選項提供。例如,要使文本變為黃色,請使用以下設置
The following colors and styles are supported:
-blue
-cyan
-faint
-green
-magenta
-red
-yellow
默認,SpringBoot 只將日誌打印到控制台沒有寫到日誌文件。如果你想同時寫到配置文件,你需要 配置 logging.file.name 或者 logging.file.path 屬性 到你的 application.properties。
The following table shows how the logging.* properties can be used together:
下列表格顯示 logging.* 屬性如何一起使用。
Table 4. Logging properties
和控制台輸出一樣,日誌文件到達 10M 的時候就會進行輪轉,日誌文件的大小可以使用 logging.file.max-size 屬性指定。日誌默認會保持7天在設置 logging.file.max-history 屬性之前。歸檔日誌的總大小可以使用 logging.file.total-size-cap 屬性來設置。當日誌總大小超出閾值時,備份的文件將會被刪除。程序啟動強制刪除歸檔日誌可以使用 logging.file.clean-history-on-start 屬性。
所有支持的日誌系統都可以通過 Spring Environment 進行日誌級別的設置。在 application.properties 中可以使用 logging.level.logger-name=level 設置日誌級別,日誌級別可以是 TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF. 根日誌可以使用 logging.level.root 屬性設置。
The following example shows potential logging settings in application.properties:
也可以通過 環境變量(Environment variables)來設置日誌的級別,比如 LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG 可以設置 org.springframework.web to DEBUG
能夠將相關的日誌記錄器分組在一起,以便能夠同時對它們進行配置,這通常是很有用的。例如,您通常可能會更改所有與Tomcat相關的日誌記錄程序的日誌級別,但是您無法輕鬆記住頂級的包。
為了幫助實現這一點,Spring Boot允許您在Spring環境中定義日誌組。例如,下面介紹如何通過將tomcat組添加到application.properties中來定義它
一旦定義了分組,你便可以通過分組改變分組內所有相關的日誌級別。
SpringBoot 提供了下表中開箱即用的日誌分組:
可以通過在類路徑中包含適當的庫來激活各種日誌系統,還可以通過在類路徑的根目錄中提供適當的配置文件或在Spring環境的以下屬性指定的位置提供適當的配置文件來進一步定製日誌系統:logging.config。
你可以使用 org.springframework.boot.logging.LoggingSystem 屬性來強制執行 SpringBoot 使用一個日誌系統。它的值是一個 LoggingSystem 接口實現類的全限定名。你可以使用 none 徹底關閉 SpringBoot 的日誌配置。
根據日誌系統的不同會加載不同的配置文件:
為了幫助定製,將其他一些屬性從Spring Environment轉移到System屬性,如下表所述
所有受支持的日誌記錄系統在解析其配置文件時都可以查閱系統屬性。 有關示例,請參見spring-boot.jar中的默認配置:
SpringBoot 提供了許多擴展幫助你進行高級的配置。你可以使用這些配置在你的 logback-spring.xml 配置文件中。
The springProfile tag lets you optionally include or exclude sections of configuration based on the active Spring profiles. Profile sections are supported anywhere within the configuration element. Use the name attribute to specify which profile accepts the configuration. The springProfile tag can contain a simple profile name (for example staging) or a profile expression. A profile expression allows for more complicated profile logic to be expressed, for example production (eu-central | eu-west). Check the reference guide for more details. The following listing shows three sample profiles:
springProfile標籤使您可以根據活動的 Spring profiles 文件有選擇地包括或排除配置部分。在configuration元素內的任何位置都支持概要文件部分。使用name屬性指定哪個配置文件接受配置。 springProfile 標籤可以包含一個簡單的 profile name (例如分段)或一個配置 profile expression。通過 profile expression 可以進行更複雜的配置。比如: production (eu-central | eu-west),可以參考詳細說明文檔 reference guide
springProperty標記使您可以從Spring Environment中公開屬性以在Logback中使用,如果要訪問Logback配置中的application.properties文件中的值,則這樣做很有用。該標籤的工作方式類似於Logback的標準property標籤。但是,不是指定一個直接的值,而是指定屬性的來源(來自環境)。如果需要將屬性存儲在本地範圍以外的其他位置,則可以使用scope屬性。如果需要默認值(如果未在環境中設置該屬性),則可以使用defaultValue屬性。 以下示例顯示如何公開在Logback中使用的屬性:
屬性的源必須要使用小寫,否則屬性無法通過 relaxed rules 添加到 環境變量(Environment)
java輸出日誌是什麼?有什麼用?
如果是小程序就不是必須的了
如果是大點的程序,日誌就非常有用了
日誌的作用,主要在維護的時候非常有用,系統可能會出一些其名其秒的錯誤,這個時候如果日誌做的比較詳細就能很清楚的查找到錯誤了~~
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 = valueN
Log4j 提供的 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開發做日誌功能是比較麻煩的,Java開發學做日誌功能推薦千鋒教育。千鋒教育合作院校超600所,校企合作共建實驗室50餘個,與教育部產學合作協同育人項目累計成功立項768項,為高校舉辦實訓近萬次,組織實施各類講座5萬餘場。規劃教材100本,已被近500所高校選用授課教材,深受廣大高校師生喜愛。
日誌對於一個系統來說非常重要,查找異常信息、分析系統運行情況等都需要用到日誌。所以無論是JDK還是第三方都提供了關於日誌的相關工具,本文分別介紹以下幾種工具,以及各種工具間的整合、原理。日誌,作為行為或狀態詳細描述的載體,其時效性與信息豐富程度在企業安全事件分析、事件回溯和取證過程中起到重要作用。在法律層,日誌也是重要的電子證據,先進的日誌記錄、監控和審計手段,可以幫助客戶有效地減少信息破壞、信息泄露的問題,對違法行為起到一定威懾作用。
想要了解更多java開發的相關信息,推薦諮詢千鋒教育。千鋒Java現已擁有成熟獨立的項目庫,項目均1:1引進大廠項目,授課採用 CREA 項目研發模型,即 Cooperation、Research、Exercise、Alliance,以項目促進高質量教學。多場景,多學科聯動為學員的技能實戰提供高度還原的真實演練場,充分賦能學員簡歷價值,打造企業直聘班,得到廣大學員一致認可。
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)%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,默認的情況下右對齊。
2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,”-“號指定左對齊。
3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大於30的話,就會將左邊多出的字符截掉,但小於30的話也不會有空格。
4)%20.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 = yourmail@gmail.com
log4j.appender.MAIL.SMTPHost = smtp.gmail.com
log4j.appender.MAIL.Subject = Log4J Message
log4j.appender.MAIL.To = yourmail@gmail.com
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一條就鏈接一次數據庫
原創文章,作者:ENIM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140122.html