电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解記錄Java Log的幾種方式

瀏覽:130日期:2022-08-11 10:55:53
目錄一、System.out.println(最簡單)二、java.util.logging(相對簡單)三、log4j(最強大)四、commons-logging(全稱:Jakarta Commons Logging五、slf4j(全稱:Simple Logging Facade for Java,簡單日志門面

在Java中記錄日志的方式有如下幾種:

一、System.out.println(最簡單)

1、輸出到控制臺:System.out.println('XXX');2、輸出到指定文件:

import java.io.PrintStream; PrintStream ps = new PrintStream('D:test.txt');System.setOut(ps);System.out.println('XXX');二、java.util.logging(相對簡單)

JDK自帶的logging.jar中的方法。通過位于JDK安裝路徑下的jre/lib/logging.properties文件進行配置。

1、默認配置如下:

handlers= java.util.logging.ConsoleHandler .level= INFO # default file output is in user’s home directory.java.util.logging.FileHandler.pattern = %h/java%u.logjava.util.logging.FileHandler.limit = 50000java.util.logging.FileHandler.count = 1java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Limit the message that are printed on the console to INFO and above.java.util.logging.ConsoleHandler.level = INFOjava.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

默認是輸出到控制臺,如果既想在控制臺,又想在文件中,要修改如下配置:

handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

Logger的級別按降序排序如下:

SEVERE(最高值) WARNING INFO CONFIG FINE FINER FINEST(最低值)

默認所有log的輸出級別是INFO(.level= INFO),比INFO更低的日志不會顯示。控制臺的Log輸出級別可以特殊控制,默認也是INFO,可以修改如下配置:

java.util.logging.ConsoleHandler.level = INFO

2、實例

(1)輸出到控制臺:

Logger log = Logger.getLogger('testLog'); log.setLevel(Level.WARNING);log.warning('xxxx testLog warning');

輸出結果:

詳解記錄Java Log的幾種方式

(2)輸出到文件:

FileHandler fileHandler;//文件控制器try { fileHandler = new FileHandler('D:temptext.log');fileHandler.setLevel(Level.INFO);fileHandler.setFormatter(new Formatter() {//定義一個匿名類 //Formatter 接受 LogRecord,并將它轉換為一個字符串。 @Override public String format(LogRecord record) { Date date = new Date(); String sDate = date.toString(); return '[' + sDate + ']' + '[' + record.getLevel() + ']' + ':' + record.getMessage() + 'n'; } }); Logger log = Logger.getLogger('testLog');log.addHandler(fileHandler); log.info('aaa'); } catch (SecurityException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();}

默認狀況下, 日志會打印到控制臺。添加 filehandler 后, 會同時寫入文件。輸出結果:

詳解記錄Java Log的幾種方式詳解記錄Java Log的幾種方式

三、log4j(最強大)

可以通過配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。具體配置不在此處詳述。

1、Log4J的輸出級別按降序排序如下:

OFF 最高等級,關閉日志 FATAL 可能導致應用中止的嚴重事件錯誤 ERROR 嚴重錯誤,主要是程序錯誤 WARN 一般警告 INFO 一般顯示信息 DEBUG 調試信息 TRACE比DEBUG更細粒度的事件信息 ALL 最低等級

2、實例

import org.apache.log4j.Logger;public class Log4jTest { private static Logger log = Logger.getLogger(Log4jTest.class); public void log() {log.info('hello this is log4j info log'); } public static void main(String[] args) {Log4jTest test = new Log4jTest();test.log(); }}

除了上述幾種,還存在logback等其他的日志框架,對于開發者而言,每種日志都有不同的寫法。如果以實際的日志框架來進行編寫,之后更換日志系統就很麻煩。

由此誕生了以下的門面類日志框架(它們都不是日志的最終實現,只是一套規范),將系統和具體的日志實現框架解耦合。

詳解記錄Java Log的幾種方式

四、commons-logging(全稱:Jakarta Commons Logging

commons-logging是為那些需要建立在不同環境下使用不同日志架構的組件或庫的開發者創建的,由commons-logging在運行時決定使用哪種日志架構。

默認的LogFactory是按照下列的步驟去發現并決定那個日志工具將被使用的(按照順序,尋找過程會在找到第一個工具時中止):

首先在classpath下尋找自己的配置文件commons-logging.properties,使用其中定義的Log實現類; 找不到commons-logging.properties文件,則在查找是否已定義系統環境變量org.apache.commons.logging.Log,使用其定義的Log實現類; 否則,查看classpath中是否有Log4j的包,有則自動使用Log4j作為日志實現類; 否則,使用JDK自身的日志實現類(JDK1.4以后才有日志實現類); 否則,使用commons-logging自己提供的一個簡單的日志實現類SimpleLog;

在common-logging.properties文件中設置實現Log接口的類:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

commons-logging結合Log4J的實例

import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory; public class JCLTest { private static Log log = LogFactory.getLog(JCLTest.class); public void log() { log.info('hello this is JCL info log'); } public static void main(String[] args) { JCLTest test = new JCLTest(); test.log(); }}五、slf4j(全稱:Simple Logging Facade for Java,簡單日志門面

SLF4j+Log4j 與 JCL+Log4J 的使用方式差不多,主要差異就在 SLF4J 用 jar 來告知用哪種日志實現,而 JCL 是通過配置文件來獲得該選擇哪個日志實現。

實例

import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Test { private static final Logger log = LoggerFactory.getLogger(Test.class); public void test() {log.info('hello this is {} info log', 'SLF4J'); }}

到此這篇關于詳解記錄Java Log的幾種方式的文章就介紹到這了,更多相關Java Log內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 刘秘书_你身边专业的工作范文写作小秘书| 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 电销卡_北京电销卡_包月电话卡-豪付网络| 紧急泄压人孔_防爆阻火器_阻火呼吸阀[河北宏泽石化] | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 隧道窑炉,隧道窑炉厂家-山东艾瑶国际贸易 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 新车测评网_网罗汽车评测资讯_汽车评测门户报道 | 造价工程师网,考试时间查询,报名入口信息-网站首页 |