欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:Log4j

柚子快報激活碼778899分享:Log4j

http://yzkb.51969.com/

介紹

Logj4 是 Apache 下的一款開源的日志框架,通過在項目中使用 Log4j ,我們可以控制日志信息輸出到控制臺、文件、甚至是數(shù)據(jù)庫。我們可以控制每一條日志的輸出格式,通過定義日志輸出級別、可以更令過的控制日志輸出過程。方便項目測試。

官網(wǎng)地址:Apache log4jhttp://logging.apache.org/log4j/1.2/

Hello Wrold

如果沒有慣用的 Hello wrold 實例,任何介紹都是不完整的。

首選創(chuàng)建 Maven 工程。 添加 Log4j 依賴。

log4j

log4j

1.2.17

添加配置文件 log4j.properties。 log4j.rootLogger = trace,console

log4j.appender.console = org.apache.log4j.ConsoleAppender

log4j.appender.console.layout = org.apache.log4j.SimpleLayout 創(chuàng)建測試類進(jìn)行測試。 import org.apache.log4j.Logger;

public class AppTest {

public static void main(String[] args){

Logger logger = Logger.getLogger(AppTest.class);

logger.info("Hello World!");

}

} 控制臺輸出結(jié)果:

INFO - Hello World!

進(jìn)程已結(jié)束,退出代碼0

進(jìn)一步說明,舉很多栗子

在舉例子之前,先說一下日志級別,Log4j 有六個日志級別,它們從高到低為:

off:關(guān)閉所有日志。 fatal: 嚴(yán)重錯誤,一般會造成系統(tǒng)崩潰和終止運行。 error:錯誤信息,但不會影響系統(tǒng)運行。 warn:警告信息,可能會發(fā)生問題。 info:程序運行信息,數(shù)據(jù)庫的連接、網(wǎng)絡(luò)、IO操作等。 debug:調(diào)試信息,一般在開發(fā)階段使用,記錄程序的變量、參數(shù)等。 trace:追蹤信息,記錄程序的所有流程信息。 all:所有日志。

將日志內(nèi)容打印到控制臺

# 1. 創(chuàng)建日志記錄器 指定了輸出級別為 info,和 一個名為 `myConsole` 的輸出目標(biāo),這個名字可以是任意的;

log4j.rootLogger = info,myConsole

#2. 定義了一個名為 `myConsole` 的 輸出目標(biāo),值為`org.apache.log4j.ConsoleAppender` 表示輸出到控制臺;

log4j.appender.myConsole = org.apache.log4j.ConsoleAppender

#3. 定義了 一個名為 `myConsole` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.SimpleLayout` 表示 簡單的日志輸出格式;

log4j.appender.myConsole.layout = org.apache.log4j.SimpleLayout

輸出結(jié)果: ?

INFO - Hello World!

進(jìn)程已結(jié)束,退出代碼0

將日志內(nèi)容輸出到文件

?

# 1. 創(chuàng)建日志記錄器 指定了輸出級別為 info,和 一個名為 `myFile` 的輸出目標(biāo),這個名字可以是任意的;

log4j.rootLogger = info,myFile

#2. 定義了一個名為 `myFile` 的 輸出目標(biāo),值為`org.apache.log4j.FileAppender` 表示輸出到文件;

log4j.appender.myFile = org.apache.log4j.FileAppender

#2. 定義了一個名為 `myFile` 的 輸出目標(biāo),定義文件的輸出位置

log4j.appender.myFile.file = log/myLog.txt

#3. 定義了 一個名為 `myFile` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.SimpleLayout` 表示 簡單的日志輸出格式;

log4j.appender.myFile.layout = org.apache.log4j.SimpleLayout

輸出結(jié)果: ?

進(jìn)程已結(jié)束,退出代碼0

會在根路徑下的 log 文件夾生成一個名為 myLog.txt 的文件。

每次允許這個程序,都會將日志信息 追加 到文件中。

?

將日志內(nèi)容打印到控制臺并輸出到文件

# 1. 創(chuàng)建日志記錄器 指定了輸出級別為 info,和 一個名為 `myConsole` 和 `myFile` 的輸出目標(biāo)

log4j.rootLogger = info,myConsole,myFile

#2. 定義了一個名為 `myConsole` 的 輸出目標(biāo),值為`org.apache.log4j.ConsoleAppender` 表示輸出到控制臺;

log4j.appender.myConsole = org.apache.log4j.ConsoleAppender

#3. 定義了 一個名為 `myConsole` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.SimpleLayout` 表示 簡單的日志輸出格式;

log4j.appender.myConsole.layout = org.apache.log4j.SimpleLayout

#4. 定義了一個名為 `myFile` 的 輸出目標(biāo),值為`org.apache.log4j.FileAppender` 表示輸出到文件;

log4j.appender.myFile = org.apache.log4j.FileAppender

#5. 定義了一個名為 `myFile` 的 輸出目標(biāo),定義文件的輸出位置

log4j.appender.myFile.file = log/myLog.txt

#6. 定義了 一個名為 `myFile` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.SimpleLayout` 表示 簡單的日志輸出格式;

log4j.appender.myFile.layout = org.apache.log4j.SimpleLayout

格式化輸出信息

以輸出到控制臺為例,格式化輸出信息,其他輸出方式可舉一反三。

注意:將 SimpleLayout 修改為 PatternLayout。

SimpleLayout :簡單的日志輸出格式化; PatternLayout:最強大的格式化期,可以根據(jù)自定義格式輸出日志,如果沒有指定轉(zhuǎn)換格式, 就是用默認(rèn)的轉(zhuǎn)換格式;

# 1. 創(chuàng)建日志記錄器 指定了輸出級別為 info,和 一個名為 `myConsole` 的輸出目標(biāo),這個名字可以是任意的;

log4j.rootLogger = info,myConsole

#2. 定義了一個名為 `myConsole` 的 輸出目標(biāo),值為`org.apache.log4j.ConsoleAppender` 表示輸出到控制臺;

log4j.appender.myConsole = org.apache.log4j.ConsoleAppender

#3. 定義了 一個名為 `myConsole` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.SimpleLayout` 表示 簡單的日志輸出格式;

log4j.appender.myConsole.layout = org.apache.log4j.PatternLayout

#定義輸出格式

log4j.appender.myConsole.layout.ConversionPattern = 當(dāng)前時間:%-d{yyyy-MM-dd HH:mm:ss} 線程名:%t 日志級別:%p 日志信息:%m%n

輸出結(jié)果:

當(dāng)前時間:2024-05-21 09:06:39 線程名:main 日志級別:INFO 日志信息:Hello World!

進(jìn)程已結(jié)束,退出代碼0

當(dāng)然,該有更多格式化輸出所用到的占位符,如下:

占位符作用%m輸出代碼中指定的日志信息%p輸出優(yōu)先級,及 DEBUG、INFO 等%n換行符(Windows平臺的換行符為 "\n",Unix 平臺為 "\n")%r輸出自應(yīng)用啟動到輸出該 log 信息耗費的毫秒數(shù)%c輸出打印語句所屬的類的全名%t輸出產(chǎn)生該日志的線程全名%d輸出服務(wù)器當(dāng)前時間,默認(rèn)為 ISO8601,也可以指定格式,如:%d{yyyy年MM月dd日 HH:mm:ss}%l輸出日志時間發(fā)生的位置,包括類名、線程、及在代碼中的行數(shù)。如: Test.main(Test.java:10)%F輸出日志消息產(chǎn)生時所在的文件名稱%L輸出代碼中的行號%%輸出一個 "%" 字符%5c輸出category名稱,最小寬度是5,category<5,默認(rèn)的情況下右對齊%-5c輸出category名稱,最小寬度是5,category<5,"-"號指定左對齊,會有空格%.5c輸出category名稱,最大寬度是5,category>5,就會將左邊多出的字符截掉,<5不 會有空格%20.30.c%20.30c category名稱<20補空格,并且右對齊,>30字符,就從左邊交遠(yuǎn)銷出的字符截掉

指定輸出的編碼

#指定日志的文件編碼

log4j.appender.[日志記錄器名:如 myFile].encoding=UTF-8

?

每隔一天生成心的日志文件

# 1. 創(chuàng)建日志記錄器 指定了輸出級別為 info,和 一個名為 `myFile` 的輸出目標(biāo),這個名字可以是任意的;

log4j.rootLogger = info,myFile

#2. 定義了一個名為 `myFile` 的 輸出目標(biāo),值為`org.apache.log4j.FileAppender` 表示輸出到文件;

log4j.appender.myFile = org.apache.log4j.FileAppender

#2. 定義了一個名為 `myFile` 的 輸出目標(biāo),定義文件的輸出位置

log4j.appender.myFile.file = log/myLog.txt

#3. 定義了 一個名為 `myFile` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.DatePattern ` 表示 表示按時間劃分文件;

log4j.appender.myFile.layout = org.apache.log4j.DatePattern

#設(shè)置劃分的時間(按天,按分鐘,按月)

log4j.appender.myFile.DatePattern = '.'yyyy-MM-dd

log4j.appender.myFile.DatePattern還可以指定為:

每小時滾動:'.'yyyy-MM-dd-HH

每分鐘滾動:'.'yyyy-MM-dd-HH-mm

每個月滾動:'.'yyyy-MM

按文件大小生成新文件

# 1. 創(chuàng)建日志記錄器 指定了輸出級別為 info,和 一個名為 `myFile` 的輸出目標(biāo),這個名字可以是任意的;

log4j.rootLogger = info,myFile

#2. 定義了一個名為 `myFile` 的 輸出目標(biāo),值為`org.apache.log4j.FileAppender` 表示輸出到文件;

log4j.appender.myFile = org.apache.log4j.FileAppender

#2. 定義了一個名為 `myFile` 的 輸出目標(biāo),定義文件的輸出位置

log4j.appender.myFile.file = log/myLog.txt

#3. 定義了 一個名為 `myFile` 的輸出目標(biāo)的輸出格式,值為 `org.apache.log4j.RollingFileAppender ` 表示 表示按文件大小劃分文件;

log4j.appender.myFile.layout = org.apache.log4j.RollingFileAppender

# 設(shè)置文件最大容量

log4j.appender.myFile.MaxFileSize = 10MB

#設(shè)置最大保存的文件數(shù)量,當(dāng)大于5個文件時,最早的文件將被覆蓋掉

log4j.appender.myFile.MaxBackupIndex = 5

將日志文件保存到數(shù)據(jù)庫

既然用到了數(shù)據(jù)庫,肯定需要先引入 MySQL依賴;

mysql

mysql-connector-java

8.0.33

同樣也要準(zhǔn)別一個相對應(yīng)的數(shù)據(jù)庫,數(shù)據(jù)庫的字段該怎么寫,它就是,你想要的日志輸出信息,比如你想要一個,當(dāng)前時間,你就可以創(chuàng)建一個當(dāng)前時間的字段,以此類推....

例子:

CREATE TABLE `log` (

`log_id` int(11) NOT NULL AUTO_INCREMENT,

`project_name` varchar(255) DEFAULT NULL COMMENT '目項名',

`create_date` varchar(255) DEFAULT NULL COMMENT '創(chuàng)建時間',

`level` varchar(255) DEFAULT NULL COMMENT '優(yōu)先級',

`category` varchar(255) DEFAULT NULL COMMENT '所在類的全名',

`file_name` varchar(255) DEFAULT NULL COMMENT '輸出日志消息產(chǎn)生時所在的文件名稱 ',

`thread_name` varchar(255) DEFAULT NULL COMMENT '日志事件的線程名',

`line` varchar(255) DEFAULT NULL COMMENT '號行',

`all_category` varchar(255) DEFAULT NULL COMMENT '日志事件的發(fā)生位置',

`message` varchar(4000) DEFAULT NULL COMMENT '輸出代碼中指定的消息',

PRIMARY KEY (`log_id`)

);

#2. 定義了一個名為 `logDB` 的 輸出目標(biāo),值為`org.apache.log4j.JDBCAppender` 表示輸出到數(shù)據(jù)庫;

log4j.appender.logDB=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.logDB.layout=org.apache.log4j.PatternLayout

#數(shù)據(jù)庫驅(qū)動

log4j.appender.logDB.Driver=com.mysql.jdbc.Driver

#數(shù)據(jù)庫地址

log4j.appender.logDB.URL=jdbc:mysql://localhost:3306/test

#用戶名

log4j.appender.logDB.User=root

#密碼

log4j.appender.logDB.Password=root

#在這里輸出,就是 log4j.appender.logDB.Sql 指定了一條添加語句,里面的值通過格式化字符串的占位符給定值。我怎么感覺這個方式會被SQL注入呢???

log4j.appender.logDB.Sql=INSERT INTO

log(project_name,create_date,level,category,file_name,thread_name,line,all_categ

ory,message) values('itcast','%d{yyyy-MM-dd HH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')

?

柚子快報激活碼778899分享:Log4j

http://yzkb.51969.com/

好文推薦

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19095252.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄