日志標(biāo)準(zhǔn)化規(guī)范(新)_第1頁(yè)
日志標(biāo)準(zhǔn)化規(guī)范(新)_第2頁(yè)
日志標(biāo)準(zhǔn)化規(guī)范(新)_第3頁(yè)
日志標(biāo)準(zhǔn)化規(guī)范(新)_第4頁(yè)
日志標(biāo)準(zhǔn)化規(guī)范(新)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

日志標(biāo)準(zhǔn)化規(guī)范(新)日志標(biāo)準(zhǔn)化規(guī)范(新)日志標(biāo)準(zhǔn)化規(guī)范(新)資料僅供參考文件編號(hào):2022年4月日志標(biāo)準(zhǔn)化規(guī)范(新)版本號(hào):A修改號(hào):1頁(yè)次:1.0審核:批準(zhǔn):發(fā)布日期:日志標(biāo)準(zhǔn)化規(guī)范背景隨著互聯(lián)網(wǎng)絡(luò)的飛速發(fā)展,各行各業(yè)已經(jīng)不限于知道信息,更是挖掘、把握住隱藏在信息后面的信息。海量的數(shù)據(jù)是一種寶貴的財(cái)富,如何按照不同維度、各種口徑和規(guī)則從海量的、隱含的、雜亂的、重復(fù)的web日志或用戶訪問(wèn)信息中發(fā)現(xiàn)、提煉、分析、統(tǒng)計(jì)出有用的知識(shí)和應(yīng)用價(jià)值,進(jìn)而提高服務(wù)質(zhì)量,改進(jìn)網(wǎng)站的結(jié)構(gòu)和內(nèi)容,挖掘出有意義的用戶訪問(wèn)模式、規(guī)則以及相關(guān)的潛在用戶群等是一件非常有意義的工作。為實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)的異常狀態(tài),跟蹤網(wǎng)絡(luò)應(yīng)用資源的使用情況,實(shí)現(xiàn)對(duì)眾多設(shè)備主機(jī)日志信息的集中分析和管控,實(shí)現(xiàn)各種日志格式的兼容,準(zhǔn)確定位出問(wèn)題的物理服務(wù)器和時(shí)間段等,目前南航通過(guò)統(tǒng)一集中部署SpringAOP(kafa/redis)+Elasticsearch+Logstash+Kibana日志分析平臺(tái)實(shí)現(xiàn)了對(duì)日志收集、存儲(chǔ)、搜索、分析、監(jiān)控及展現(xiàn),并開(kāi)放訪問(wèn)接口給開(kāi)發(fā)人員,開(kāi)發(fā)人員以ELK日志分析平臺(tái)的源數(shù)據(jù)為基礎(chǔ),對(duì)數(shù)據(jù)進(jìn)行預(yù)處理、維度匯總,進(jìn)而形成行業(yè)上的各種指標(biāo)。ELK具有強(qiáng)大的搜索和展現(xiàn)功能,它只需安裝部署而不需要編寫(xiě)代碼,即可進(jìn)行業(yè)務(wù)數(shù)據(jù)分析、錯(cuò)誤日志分析及數(shù)據(jù)預(yù)警等。而SpringAop是OOP的延續(xù),它就像刀切豆腐一樣橫切整個(gè)系統(tǒng),將“關(guān)注”封裝在切面中,實(shí)現(xiàn)了調(diào)用者與被調(diào)用者之間的解耦合,是需要人工編寫(xiě)相關(guān)的代碼實(shí)現(xiàn)日志的輸出的,而在現(xiàn)實(shí)中日志記錄無(wú)統(tǒng)一規(guī)范,導(dǎo)致無(wú)法準(zhǔn)確快速的定位問(wèn)題或者獲取到想要的數(shù)據(jù)。所以本文將日志的規(guī)范重點(diǎn)放在SpringAop上。原則1.集中的日志服務(wù)器:在WEB集群節(jié)點(diǎn)越來(lái)越多的情況下,讓開(kāi)發(fā)及系統(tǒng)維護(hù)人員能很方便的查看日志信息。2.日志信息輸出策略:日志信息輸出全而不亂,便于跟蹤和分析問(wèn)題。3.關(guān)鍵業(yè)務(wù)的日志輸出:基于數(shù)據(jù)采集、數(shù)據(jù)核查、系統(tǒng)安全等方面的考慮,關(guān)鍵業(yè)務(wù)系統(tǒng)對(duì)輸出的日志信息有特殊的要求,需要做針對(duì)性的設(shè)計(jì)。4.支持備份與保密機(jī)制:防止日志丟失,敏感信息應(yīng)加密,分布式文件系統(tǒng)保證可靠性。日志分類日志文件按應(yīng)用需求功能分為訪問(wèn)日志、應(yīng)用日志和系統(tǒng)日志。按等級(jí)從低到高分為T(mén)RACE級(jí)、DEBUG級(jí)、INFO級(jí)、WARN級(jí)、ERROR級(jí)、FATAL級(jí)六級(jí)。1.TRACE級(jí)、DEBUG級(jí):理論上“不屬于錯(cuò)誤”,只是打印一些狀態(tài)、提示信息,以便開(kāi)發(fā)過(guò)程中觀察,開(kāi)發(fā)完成、正式上線后需要屏蔽。級(jí):理論上“不屬于錯(cuò)誤”,只是一些提示性的信息,但是即使在開(kāi)發(fā)完成、正式上線的系統(tǒng)中,也有保留的價(jià)值。在實(shí)際環(huán)境中,系統(tǒng)管理員或者高級(jí)用戶要能理解INFO輸出的信息并能很快的了解應(yīng)用正在做什么。比如,一個(gè)和處理機(jī)票預(yù)訂的系統(tǒng),對(duì)每一張票要有且只有一條INFO信息描述"[Who]bookedticketfrom[Where]to[Where]"。級(jí):屬于輕微的“警告”,程序中出現(xiàn)了一些異常情況,但是影響不大,還可以正常使用。級(jí):屬于“普通的錯(cuò)誤”,在程序可以控制的范圍內(nèi),不會(huì)造成連鎖影響或巨大影響,日志發(fā)生之后其實(shí)不會(huì)導(dǎo)致系統(tǒng)運(yùn)行出現(xiàn)異常的,可能是對(duì)某些數(shù)據(jù)的初始化深入驗(yàn)證出現(xiàn)的問(wèn)題。級(jí):屬于“致命錯(cuò)誤”,開(kāi)發(fā)過(guò)程中的try...catch模塊中拋出的一些未能預(yù)料到的系統(tǒng)錯(cuò)誤,可導(dǎo)致整個(gè)系統(tǒng)或者一系列功能無(wú)法使用,甚至導(dǎo)致系統(tǒng)癱瘓、關(guān)閉,必須馬上有人進(jìn)行處理。比如:空指針異常,數(shù)據(jù)庫(kù)不可用,如硬盤(pán)空間滿等,關(guān)鍵業(yè)務(wù)流程中斷等等。代碼日志規(guī)范1.【強(qiáng)制】系統(tǒng)應(yīng)用中不可直接使用日志系統(tǒng)(Log4j、Logback)中的API,而應(yīng)依賴使用日志框架SLF4J中的API,使用門(mén)面模式的日志框架,有利于維護(hù)和各個(gè)類的日志處理方式統(tǒng)一。importimportprivatestaticfinalLoggerlogger=。2.【強(qiáng)制】日志文件推薦至少保存15天,因?yàn)橛行┊惓>邆湟浴爸堋睘轭l次發(fā)生的特點(diǎn)。3.【強(qiáng)制】應(yīng)用中的擴(kuò)展日志(如打點(diǎn)、臨時(shí)監(jiān)控、訪問(wèn)日志等)命名方式:。logType:日志類型,推薦分類有stats/desc/monitor/visit等;logName:日志描述。這種命名的好處:通過(guò)文件名就可知道日志文件屬于什么應(yīng)用,什么類型,什么目的,也有利于歸類查找。正例:mppserver應(yīng)用中單獨(dú)監(jiān)控時(shí)區(qū)轉(zhuǎn)換異常,如:說(shuō)明:推薦對(duì)日志進(jìn)行分類,如將錯(cuò)誤日志和業(yè)務(wù)日志分開(kāi)存放,便于開(kāi)發(fā)人員查看,也便于通過(guò)日志對(duì)系統(tǒng)進(jìn)行及時(shí)監(jiān)控。4.【強(qiáng)制】對(duì)trace/debug/info級(jí)別的日志輸出,必須使用條件輸出形式或者使用占位符的方式。說(shuō)明:("Processingtradewithid:"+id+"symbol:"+symbol);如果日志級(jí)別是warn,上述日志不會(huì)打印,但是會(huì)執(zhí)行字符串拼接操作,如果symbol是對(duì)象,會(huì)執(zhí)行toString()方法,浪費(fèi)了系統(tǒng)資源,執(zhí)行了上述操作,最終日志卻沒(méi)有打印。正例:(條件)if()){("Processingtradewithid:"+id+"symbol:"+symbol);}正例:(占位符)("Processingtradewithid:{}symbol:{}",id,symbol);解釋:debug/info級(jí)別的信息,信息本身需要計(jì)算或合并的,必須加isXxxEnabled()判斷在前,這樣可以大大提高高并發(fā)下的效率。如果不加isXxxEnabled()判斷,"Processingtradewithid:"+id+"symbol:"+symbol在info級(jí)別下也會(huì)執(zhí)行。5.【強(qiáng)制】避免重復(fù)打印日志,浪費(fèi)磁盤(pán)空間,務(wù)必在中設(shè)置additivity=false。正例:<loggername=""additivity="false">6.【強(qiáng)制】異常信息應(yīng)該包括兩類信息:案發(fā)現(xiàn)場(chǎng)信息和異常堆棧信息。如果不處理,那么通過(guò)關(guān)鍵字throws往上拋出。正例:(各類參數(shù)或者對(duì)象toString+"_"+(),e);7.【推薦】謹(jǐn)慎地記錄日志。生產(chǎn)環(huán)境禁止輸出debug日志;有選擇地輸出info日志;如果使用warn來(lái)記錄剛上線時(shí)的業(yè)務(wù)行為信息,一定要注意日志輸出量的問(wèn)題,避免把服務(wù)器磁盤(pán)撐爆,并記得及時(shí)刪除這些觀察日志。說(shuō)明:大量地輸出無(wú)效日志,不利于系統(tǒng)性能提升,也不利于快速定位錯(cuò)誤點(diǎn)。記錄日志時(shí)請(qǐng)思考:這些日志真的有人看嗎看到這條日志你能做什么能不能給問(wèn)題排查帶來(lái)好處8.【參考】可以使用warn日志級(jí)別來(lái)記錄用戶輸入?yún)?shù)錯(cuò)誤的情況,避免用戶投訴時(shí),無(wú)所適從。注意日志輸出的級(jí)別,error級(jí)別只記錄系統(tǒng)邏輯出錯(cuò)、異常等重要的錯(cuò)誤信息。如非必要,請(qǐng)不要在此場(chǎng)景打出error級(jí)別。以上8條來(lái)自于《阿里巴巴開(kāi)發(fā)手冊(cè)》---日志規(guī)約。日志記錄了用戶對(duì)網(wǎng)站的每一次點(diǎn)擊訪問(wèn),即每一次接口的調(diào)用。但由于各種原因,web日志中有些記錄是缺失或不完整的數(shù)據(jù),推薦在每個(gè)接口調(diào)用后,在其入口輸出調(diào)用類名及輸入?yún)?shù)的日志,以及接口結(jié)束前輸出返回?cái)?shù)據(jù)的日志,并使用info級(jí)別。另外,重要方法入口,業(yè)務(wù)流程前后及處理的結(jié)果等,推薦記錄log,并使用debug級(jí)別,因?yàn)閷?duì)于非開(kāi)發(fā)人員掌控的環(huán)境(無(wú)法做DEBUG),記錄方法調(diào)用、入?yún)?、返回值的方式?duì)于排查問(wèn)題會(huì)有很大幫助。10.日志輸出規(guī)范。應(yīng)用程序禁止直接使用Log4JAPI,并且禁止使用JDKConsole輸出,,(),etc.),應(yīng)使用、。所有的日志實(shí)例的屬性都應(yīng)從根日志(rootlogger)繼承。日志信息必須支持輸出到控制臺(tái)(console)和文本文件(TextFiles)。輸出到文本文件(TextFiles)的日志,應(yīng)提供日志文件分析腳本,以方便查詢閱讀、統(tǒng)計(jì)分析。11.關(guān)注日志記錄對(duì)于系統(tǒng)性能、安全性的影響,不要多次重復(fù)記錄日志。日志記錄太過(guò)于頻繁,日志記錄到文件IO或者數(shù)據(jù)庫(kù)都是很費(fèi)CPU和內(nèi)存資源的事,會(huì)對(duì)系統(tǒng)的性能產(chǎn)生影響。關(guān)注日志是否會(huì)被惡意攻擊頻繁打印日志,使得日志文件超過(guò)100G、500G直到磁盤(pán)容量爆滿,服務(wù)器掛掉。12.記錄要精簡(jiǎn)、不濫用日志,關(guān)注日志記錄的正確性和必要性。分清楚什么時(shí)候應(yīng)該記錄日志,什么時(shí)候不需要記錄日志。什么是TRACE、DEBUG信息,什么是INFO、ERROR信息。對(duì)于異常處理,不要多次重復(fù)的記錄同一個(gè)異常的堆棧信息。比如在DAO層記錄了異常堆棧信息,然后拋出異常,在web層catch了異常之后,又記錄了一次異常堆棧信息。13.在日志信息上添加便于檢閱、查找的額外標(biāo)識(shí)。每條日志都應(yīng)有關(guān)鍵標(biāo)識(shí),能夠盡快定位某條信息的位置。包括日期和時(shí)間,程序Java類的名稱、方法甚至行號(hào),錯(cuò)誤類型或者錯(cuò)誤代碼。否則前端web頁(yè)面報(bào)錯(cuò),告訴開(kāi)發(fā)人員去查找問(wèn)題,開(kāi)發(fā)人員很難去查找當(dāng)時(shí)的操作日志或者異常信息。對(duì)象的聲明和初始化僅以下代碼是符合規(guī)范:意error和warn級(jí)別的區(qū)別,導(dǎo)致業(yè)務(wù)不正常服務(wù)的,用error級(jí)別;錯(cuò)誤是預(yù)期會(huì)發(fā)生的,并且已經(jīng)有了其他的處理流程,使用warn級(jí)別。16.Log的內(nèi)容須確保不會(huì)因?yàn)長(zhǎng)og語(yǔ)句的問(wèn)題而拋出異常造成中斷,如下有可能會(huì)拋出NullPointerException:("Processingrequestwithid:{}",());17.日志配置一般有:日志級(jí)別、輸出位置,如果有日志分析工具,還需仔細(xì)設(shè)計(jì)日志格式的配置,以能夠在工具中完美展示。所有的日志配置文件放在src目錄下,編譯時(shí)隨同。class文件一同拷貝到(%webapp_HOME%)\WEB-INF\classes\目錄下,這些配置文件推薦采用properties文件的編寫(xiě)方法,文件用來(lái)指定commons-logging的實(shí)現(xiàn)為log4j,文件用來(lái)配置log4j的所有參數(shù),日志配置信息不得配置在這兩個(gè)文件以外的文件中。18.用戶操作日志。用戶操作日志面臨記錄頻繁、數(shù)據(jù)結(jié)構(gòu)異常多、數(shù)據(jù)流量非常大、數(shù)據(jù)價(jià)值如何提高等問(wèn)題。在記錄用戶的操作日志盡量不要浪費(fèi)系統(tǒng)的額外性能開(kāi)銷,但是我們記錄的信息要方便下一步的數(shù)據(jù)挖掘用戶行為分析。(1)頻繁記錄日志會(huì)導(dǎo)致系統(tǒng)IO的消耗,我們可以采用Redis或memcached這一類內(nèi)出數(shù)據(jù)庫(kù)先行記錄日志當(dāng)量達(dá)到一定規(guī)模自動(dòng)記錄到日志文件中避免平凡調(diào)用IO進(jìn)行文件數(shù)據(jù)寫(xiě)入或數(shù)據(jù)庫(kù)寫(xiě)入。(2)定義統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),這樣做的目的是為了能夠方便使用相應(yīng)的工具進(jìn)行用戶操作日志挖掘。(3)提高用戶數(shù)據(jù)價(jià)值,目的是為了提高分析用戶數(shù)據(jù),分析用戶數(shù)據(jù)是為了分析出一種或幾種用戶行為模式。要做到易于分析用戶模式需要建立相應(yīng)的操作日志記錄結(jié)構(gòu),規(guī)定好結(jié)構(gòu)進(jìn)行分析就降低了復(fù)雜度。用戶日志分析有以下幾點(diǎn)好處:1.高價(jià)值用戶挖掘。2.高價(jià)值航班挖掘。3.客戶偏好收集,為了下一步進(jìn)行客戶建模,然后提供貼心的服務(wù)。4.產(chǎn)品捆綁式銷售,來(lái)自對(duì)客戶的建模之后。5.發(fā)覺(jué)社會(huì)影響力大的任務(wù)或關(guān)鍵人物。有了這些結(jié)果,就可以體現(xiàn)用戶日志價(jià)值,并盡快制定符合自己公司的記錄結(jié)構(gòu)。19.關(guān)鍵業(yè)務(wù)系統(tǒng)日志的要求(1)權(quán)限管理日志定義:記錄業(yè)務(wù)應(yīng)用系統(tǒng)的用戶權(quán)限分配管轄的每一個(gè)更改活動(dòng)。日志類型:包括用戶/用戶組的權(quán)限指派與移除。日志信息:包括操作時(shí)間,系統(tǒng)設(shè)備的主機(jī)名和IP地址;操作用戶(誰(shuí)在操作);授權(quán)用戶/用戶組,權(quán)限資源名稱、操作方式(如分配、刪除、修改),操作結(jié)果(如成功、失敗)(2)帳號(hào)管理日志定義:記錄業(yè)務(wù)應(yīng)用系統(tǒng)上每個(gè)帳戶的管理活動(dòng)日志類型:包括用戶的創(chuàng)建、刪除、修改、禁用,帳戶密碼的管理,包括創(chuàng)建、修改等。日志信息:包括操作時(shí)間,系統(tǒng)設(shè)備的主機(jī)名和IP地址;操作用戶;被管理的用戶/用戶組,操作方式(如創(chuàng)建、刪除、修改、禁用),操作結(jié)果(如成功、失敗)(3)系統(tǒng)自身日志定義:記錄應(yīng)用系統(tǒng)在啟動(dòng)或關(guān)閉服務(wù)時(shí)或者在發(fā)生影響業(yè)務(wù)應(yīng)用系統(tǒng)故障的活動(dòng)。日志類型:包括服務(wù)啟動(dòng)、服務(wù)停止,系統(tǒng)故障。日志信息:包括操作時(shí)間,系統(tǒng)設(shè)備的主機(jī)名和IP地址;操作用戶;操作方式(如服務(wù)啟動(dòng)),操作結(jié)果(如成功、失?。?)用戶登錄日志定義:記錄業(yè)務(wù)應(yīng)用系統(tǒng)的用戶登錄認(rèn)證、退出活動(dòng)日志類型:包括成功的用戶登錄認(rèn)證,失敗的用戶登錄認(rèn)證,用戶注銷,用戶超時(shí)退出日志信息:包括操作時(shí)間,系統(tǒng)設(shè)備的主機(jī)名和IP地址,操作用戶,操作源IP,渠道信息,操作方式(如查詢、插入、刪除等),操作結(jié)果(成功、失敗),請(qǐng)求花費(fèi)時(shí)間、tokenid、sessionid。(5)服務(wù)接口調(diào)用日志定義:使用WEB服務(wù)器或所有外部接口的調(diào)用需要記錄接口訪問(wèn)信息,如用戶瀏覽。日志信息:包括請(qǐng)求時(shí)間、用戶IP、接口URL、HTTP狀態(tài)碼、接口方法、調(diào)用結(jié)果、執(zhí)行時(shí)間(6)業(yè)務(wù)訪問(wèn)日志定義:記錄用戶訪問(wèn)的業(yè)務(wù)應(yīng)用系統(tǒng)的業(yè)務(wù)資源,這一類日志用于跟蹤用戶的行為分析是非常的重要的,可作為用戶數(shù)據(jù)挖掘發(fā)現(xiàn)用戶的喜好等一些信息,與5有重復(fù)。日志信息:包括操作時(shí)間,系統(tǒng)設(shè)備的主機(jī)名和IP地址,操作用戶,操作源IP,訪問(wèn)的資源名稱,操作方式(如查詢、插入、刪除等),操作結(jié)果(成功、失?。?。20.記錄異常信息是“記錄所有信息”中的一個(gè)重要組成,在異常處理模塊中應(yīng)提供適量的錯(cuò)誤原因信息,但很多開(kāi)發(fā)人員只是把logging當(dāng)做處理異常的一種方式。他們通常返回缺省值,然后當(dāng)做什么都沒(méi)發(fā)生。而有些開(kāi)發(fā)人員先log異常信息,然后再拋出包裝過(guò)的異常。如:("IOexception",e);thrownewMyCustomException(e);這種方法總是會(huì)打印兩次相同的stacktrace信息,因?yàn)橛行┑胤綍?huì)捕捉MyCustomException異常,然后輸出導(dǎo)致問(wèn)題的日志信息。21.當(dāng)程序產(chǎn)生異常時(shí),必須捕捉并處理異常、將異常記錄到日志中(除非打算拋出異常),捕獲異常后不處理也不輸出log是一種非常不負(fù)責(zé)任的行為,這會(huì)造成問(wèn)題很難被定位,極大地提高調(diào)試的成本。須注意以下幾點(diǎn):

(1)將try/catch區(qū)段置于循環(huán)之外。(2)盡量減小try塊的體積,不要從try區(qū)段中返回。(3)不要將異常用于程序流程控制。(4)不要處理能夠避免的異常。(5)盡量拋出異常,頂層的main()函數(shù)截獲所有的異常,并且打?。ɑ蛘哂涗浽谌罩局校┰谄聊簧?。(6)異常捕獲盡量不要直接catch(Exceptionex),應(yīng)該把異常細(xì)分處理。(7)一個(gè)方法不應(yīng)拋出太多類型的異常。說(shuō)明:如果程序中需要分類處理,則將異常根據(jù)分類組織成繼承關(guān)系。如果確實(shí)有很多異常類型首先考慮用異常描述來(lái)區(qū)別,throws/exception子句標(biāo)明的異常最好不要超過(guò)三個(gè)。(8)記錄異常不要保存(),而要記錄().()、()、()三者的區(qū)別:()獲取的信息包括異常類型和異常詳細(xì)消息;()只是獲取了異常的詳細(xì)消息字符串

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論