java日志LoggerFactory.getLogger的用法及說明
LoggerFactory.getLogger可以在IDE控制臺打印日志,便于開發(fā),一般加在最上面:
使用:
//調(diào)試日志 private final static Logger logger = LoggerFactory.getLogger(xxxController.class);
優(yōu)點:使用指定類初始化日志對象,在日志輸出的時候,可以打印出日志信息所在類
logger日志的幾個方法
logger.debug、logger.info、logger.warn、logger.error、logger.fatal 的區(qū)別:
- 相同處:
它們的作用都是把錯誤信息寫到文本日志里
- 不同的是它們表示的日志級別不同:
日志級別由高到底是:fatal -> error -> warn -> info -> debug,低級別的會輸出高級別的信息,高級別的不會輸出低級別的
信息,如等級設(shè)為Error的話,warn,info,debug的信息不會輸出
修改日志輸出的級別要在log4j文件中進(jìn)行配置
項目正式發(fā)布后,一般會把日志級別設(shè)置為fatal或者error
demo例子
package wwfww.warehouse.aaaaa; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @version Revision 1.0.0 * @版權(quán):版權(quán)所有 (c) 2018 * @see: * @創(chuàng)建日期:2020年3月2日 @功能說明: @begin * @修改記錄: * @修改后版本 修改人 修改內(nèi)容 * @2020年3月2日 liuyu 創(chuàng)建 * @end */ public class LoggerFactoryDemo { private static final Logger LOGGER = LoggerFactory.getLogger(LoggerFactoryDemo.class); public static void main(String[] args) { for (int i=0;i<5;i++){ LOGGER.info("這是一條數(shù)據(jù)"+i); } } }
控制臺輸出
13:58:52.913 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù)0
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù)1
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù)2
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù)3
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù)4
可以看到控制臺日志輸出的時候,打印出日志信息所在類
也可以用在try catch中:
try{ ...... } catch (IOException e) { logger.info("錯誤信息:" + e.getMessage()); return new Result(e.getMessage()); }
在日志輸出時,字符串變量之間的拼接使用占位符的方式
說明:因為 String 字符串的拼接會使用 StringBuilder 的 append()方式,有一定的性能損耗。使用占位符僅是替換動作,可以有效提升性能。
打印json數(shù)據(jù)
新建entity
package wwfww.warehouse.aaaaa; import javax.xml.crypto.Data; import java.util.Date; /** * @version Revision 1.0.0 * @版權(quán):版權(quán)所有 (c) 2018 * @see: * @創(chuàng)建日期:2020年3月2日 @功能說明: @begin * @修改記錄: * @修改后版本 修改人 修改內(nèi)容 * @2020年3月2日 liuyu 創(chuàng)建 * @end */ public class DemoEntity { public String name; public String address; public Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
package wwfww.warehouse.aaaaa; import com.alibaba.fastjson.JSON; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; /** * @version Revision 1.0.0 * @版權(quán):版權(quán)所有 (c) 2018 * @see: * @創(chuàng)建日期:2020年3月2日 @功能說明: @begin * @修改記錄: * @修改后版本 修改人 修改內(nèi)容 * @2020年3月2日 liuyu 創(chuàng)建 * @end */ public class LoggerFactoryDemo { private static final Logger LOGGER = LoggerFactory.getLogger(LoggerFactoryDemo.class); public static void main(String[] args) { for (int i=0;i<5;i++){ DemoEntity entity = getDemoEntity(i); LOGGER.info("這是一條數(shù)據(jù):{}", JSON.toJSONString(entity)); } for (int i=0;i<5;i++){ DemoEntity entity = getDemoEntity(i); LOGGER.info("{}:也可以是前面", JSON.toJSONString(entity)); } } private static DemoEntity getDemoEntity(int i){ DemoEntity demoEntity = new DemoEntity(); demoEntity.setName("小明"+i+"號"); demoEntity.setAddress("北京胡同"+2+"街道"); demoEntity.setBirthday(new Date()); return demoEntity; } }
控制臺輸出:
14:27:42.161 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù):{"address":"北京胡同2街道","birthday":1587882461879,"name":"小明0號"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù):{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明1號"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù):{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明2號"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù):{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明3號"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 這是一條數(shù)據(jù):{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明4號"}
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明0號"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明1號"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明2號"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明3號"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明4號"}:也可以是前面
注:
使用JSON.toJSONString要添加阿里的依賴
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.57</version> </dependency>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
2022版IDEA創(chuàng)建一個maven項目的超詳細(xì)圖文教程
IDEA是用于java語言開發(fā)的集成環(huán)境,并且經(jīng)常用于maven、spring、MyBatis等項目的開發(fā),下面這篇文章主要給大家介紹了關(guān)于2022版IDEA創(chuàng)建一個maven項目的超詳細(xì)圖文教程,需要的朋友可以參考下2023-02-02spring簡單MVC實現(xiàn)方法(URL映射及其參數(shù)使用、查詢(id、其他參數(shù))、增加)
這篇文章主要介紹了spring簡單MVC實現(xiàn)方法(URL映射及其參數(shù)使用、查詢(id、其他參數(shù))、增加),方法參數(shù)使用包括在無注解下獲取參數(shù),使用@RequestParam 獲取參數(shù)的方法,每種方法講解的非常詳細(xì),需要的朋友可以參考下2024-01-01在IntelliJ IDEA中使用gulp的方法步驟(圖文)
這篇文章主要介紹了在IntelliJ IDEA中使用gulp的方法步驟(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01