




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 日志標(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(
2、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)確快速的定
3、位問(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í)從低到高分為TRACE級(jí)、DEBUG級(jí)、INFO級(jí)、WARN級(jí)、
4、ERROR級(jí)、FATAL級(jí)六級(jí)。1TRACE級(jí)、DEBUG級(jí):理論上“不屬于錯(cuò)誤”,只是打印一些狀態(tài)、提示信息,以便開(kāi)發(fā)過(guò)程中觀察,開(kāi)發(fā)完成、正式上線后需要屏蔽。2.INFO級(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 booked ticket from Where to Where"。3.WARN級(jí):屬于輕微的“警告”,程序中出現(xiàn)了一些異常
5、情況,但是影響不大,還可以正常使用。4.ERROR級(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)題。5.FATAL級(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ù)不可用,如硬盤空間滿等,關(guān)鍵業(yè)務(wù)流程中斷等等。四 代碼日志規(guī)范1. 【強(qiáng)制】系統(tǒng)應(yīng)用中不可直接使用日志系統(tǒng)(Log4j、Logback)中的API,而應(yīng)依賴使用日志框架SLF
6、4J中的API,使用門面模式的日志框架,有利于維護(hù)和各個(gè)類的日志處理方式統(tǒng)一。 import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(Abc.class)。2. 【強(qiáng)制】日志文件推薦至少保存15天,因?yàn)橛行┊惓>邆湟浴爸堋睘轭l次發(fā)生的特點(diǎn)。3. 【強(qiáng)制】應(yīng)用中的擴(kuò)展日志(如打點(diǎn)、臨時(shí)監(jiān)控、訪問(wèn)日志等)命名方式:appName_logType_logName.log。logType:日志類型,推薦分類有stats/d
7、esc/monitor/visit等;logName:日志描述。這種命名的好處:通過(guò)文件名就可知道日志文件屬于什么應(yīng)用,什么類型,什么目的,也有利于歸類查找。正例:mppserver應(yīng)用中單獨(dú)監(jiān)控時(shí)區(qū)轉(zhuǎn)換異常,如: mppserver_monitor_timeZoneConvert.log 說(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ō)明:logger.debug("Processing trade with
8、id: " + id + " symbol: " + symbol); 如果日志級(jí)別是warn,上述日志不會(huì)打印,但是會(huì)執(zhí)行字符串拼接操作,如果symbol是對(duì)象,會(huì)執(zhí)行toString()方法,浪費(fèi)了系統(tǒng)資源,執(zhí)行了上述操作,最終日志卻沒(méi)有打印。 正例:(條件) if (logger.isDebugEnabled() logger.debug("Processing trade with id: " + id + " symbol: " + symbol); 正例:(占位符) logger.debug("Proc
9、essing trade with id: symbol : ", id, symbol); 解釋:debug/info級(jí)別的信息,信息本身需要計(jì)算或合并的,必須加 isXxxEnabled() 判斷在前,這樣可以大大提高高并發(fā)下的效率。如果不加 isXxxEnabled() 判斷,"Processing trade with id: " + id + " symbol: " + symbol在info級(jí)別下也會(huì)執(zhí)行。5. 【強(qiáng)制】避免重復(fù)打印日志,浪費(fèi)磁盤空間,務(wù)必在log4j.xml中設(shè)置additivity=false。 正例:<l
10、ogger name="com.taobao.dubbo.config" additivity="false"> 6. 【強(qiáng)制】異常信息應(yīng)該包括兩類信息:案發(fā)現(xiàn)場(chǎng)信息和異常堆棧信息。如果不處理,那么通過(guò)關(guān)鍵字throws往上拋出。 正例:logger.error(各類參數(shù)或者對(duì)象toString + "_" + e.getMessage(), e); 7. 【推薦】謹(jǐn)慎地記錄日志。生產(chǎn)環(huán)境禁止輸出debug日志;有選擇地輸出info日志;如果使用warn來(lái)記錄剛上線時(shí)的業(yè)務(wù)行為信息,一定要注意日志輸出量的問(wèn)題,避免把服務(wù)器磁盤撐
11、爆,并記得及時(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ī)約。9.Web日志記錄了用戶對(duì)網(wǎng)站的每一次點(diǎn)擊訪問(wèn),即每一次接口的調(diào)用。但由于各種原因,web日志中有些記錄是缺失或不完整的數(shù)據(jù),推薦在每個(gè)接口調(diào)用后
12、,在其入口輸出調(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)用程序禁止直接使用Log4J API,并且禁止使用JDK Console輸出(System.out, System.err, ex.printStackTrace(), etc.),應(yīng)使用logger.debug、logger.error。所有的日志實(shí)例的屬性都應(yīng)從根日志(root lo
13、gger)繼承。日志信息必須支持輸出到控制臺(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直到磁盤容量爆滿,服務(wù)器掛掉。12記錄要精簡(jiǎn)、不濫用日志,關(guān)注日志記錄的正確性和必要性。分清楚什么時(shí)候應(yīng)該記錄日志,什么時(shí)候不需要記錄日志。什么是TRACE、DEBUG信
14、息,什么是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í)的操作日志或者異常信息。14.Log對(duì)象的聲明和初始化僅以下代碼是符合規(guī)范:/ (推薦)private static final Logger logger =
15、LoggerFactory.getLogger(Xxx.class);private final Logger logger = LoggerFactory.getLogger(getClass();private static Logger logger = LoggerFactory.getLogger(Xxx.class);protected final Logger logger =LoggerFactory.getLogger(getClass();private Logger logger = LoggerFactory.getLogger(getClass();protected
16、 Logger logger = LoggerFactory.getLogger(getClass();private static final Logger logger =LoggerFactory.getLogger("loggerName");15.注意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:log.debug("Processing
17、 request with id: ", request.getId();17.日志配置一般有:日志級(jí)別、輸出位置,如果有日志分析工具,還需仔細(xì)設(shè)計(jì)日志格式的配置,以能夠在工具中完美展示。所有的日志配置文件放在src目錄下,編譯時(shí)隨同。class文件一同拷貝到(%webapp_HOME%)WEB-INFclasses目錄下,這些配置文件推薦采用properties文件的編寫(xiě)方法, perties文件用來(lái)指定commons-logging的實(shí)現(xiàn)為log4j,perties文件用來(lái)配置log4j的所有參數(shù),日志配置信息不得配置在這兩
18、個(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ù)是為了分析出一種或幾種用
19、戶行為模式。要做到易于分析用戶模式需要建立相應(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í)在操作
20、);授權(quán)用戶/用戶組,權(quán)限資源名稱、操作方式(如分配、刪除、修改),操作結(jié)果(如成功、失?。?)帳號(hào)管理日志 定義:記錄業(yè)務(wù)應(yīng)用系統(tǒng)上每個(gè)帳戶的管理活動(dòng)日志類型:包括用戶的創(chuàng)建、刪除、修改、禁用,帳戶密碼的管理,包括創(chuàng)建、修改等。日志信息:包括操作時(shí)間,系統(tǒng)設(shè)備的主機(jī)名和IP地址;操作用戶;被管理的用戶/用戶組,操作方式(如創(chuàng)建、刪除、修改、禁用),操作結(jié)果(如成功、失?。?)系統(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))
21、,操作結(jié)果(如成功、失敗)(4)用戶登錄日志定義:記錄業(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)
22、的業(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ò)的異常。如:log.error("IO exception", e);
23、throw new MyCustomException(e);這種方法總是會(huì)打印兩次相同的stack trace信息,因?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)盡量拋出異常,頂層的ma
24、in()函數(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)記錄異常不要保存exception.getMessage(),而要記錄exception.toString().e.getMessage()、e.toString()、e.printStackTrace()三者的區(qū)別:e.toString()獲取的信息包括異常類型和異常詳細(xì)消息;e.getMessage()只是獲取了異常的詳細(xì)消息字符串;e.printStackTrace();會(huì)打出詳細(xì)異常,異常名稱,出錯(cuò)位置,便于調(diào)試用,一般一個(gè)異常至少幾十行。try m = 1/0; catch (Exception e) System.ou
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 真石漆的施工方案
- 管道陰極保護(hù)施工方案
- 二零二五年度梁上打孔作業(yè)風(fēng)險(xiǎn)控制免責(zé)合同
- 二零二五年度金融服務(wù)合同價(jià)款調(diào)整與信用風(fēng)險(xiǎn)防范
- 二零二五年度武漢房屋租賃合同糾紛處理辦法
- 二零二五年度足療店連鎖經(jīng)營(yíng)授權(quán)管理合同
- 二零二五年度能源消耗監(jiān)控系統(tǒng)維保及節(jié)能服務(wù)合同
- 二零二五年度羊群代放牧與綠色食品生產(chǎn)協(xié)議
- 二零二五年度二零二五年度承重墻拆除工程安全生產(chǎn)責(zé)任承諾書(shū)
- 普通高等學(xué)校就業(yè)協(xié)議書(shū)(2025年度)-金融服務(wù)業(yè)人才輸送協(xié)議
- 庫(kù)車縣“7.9”天山煉化油儲(chǔ)罐火災(zāi)撲救戰(zhàn)評(píng)
- 金屬結(jié)構(gòu)制造安全作業(yè)指導(dǎo)書(shū)
- 絕句遲日江山麗
- 宏偉公司財(cái)務(wù)管理目標(biāo)與利益沖突案例
- (精選)沸騰焙燒爐設(shè)計(jì)相關(guān)計(jì)算
- (完整版)信息技術(shù)讀書(shū)筆記3篇
- 商務(wù)運(yùn)營(yíng)管理PPT課件
- 理論力學(xué)(周衍柏)第二章質(zhì)點(diǎn)組力學(xué)
- ASMEB16.14-1991中文版鋼鐵管螺紋管堵、內(nèi)外螺絲和鎖緊螺母
- 《雕塑工程工程量清單計(jì)價(jià)定額》
- 《當(dāng)代廣播電視概論》試題C卷及答案
評(píng)論
0/150
提交評(píng)論