LogFileSaver

public class LogFileSaver
extends Object

java.lang.Object
   ↳ com.android.tradefed.result.LogFileSaver


ITestInvocationListener 的輔助程式,可將記錄資料儲存至檔案

摘要

公用建構函式

LogFileSaver(IBuildInfo buildInfo, File rootDir)

建立 LogFileSaver

LogFileSaver(IBuildInfo buildInfo, File rootDir, Integer logRetentionDays)

建立 LogFileSaver

LogFileSaver(IBuildInfo buildInfo, File rootDir, Integer logRetentionDays, Boolean containInvDir)

建立 LogFileSaver

LogFileSaver(File rootDir)

替代的 LogFileSaver 建構函式,只會將指定目錄做為記錄儲存目錄。

公用方法

File createCompressedLogFile(String dataName, LogDataType origDataType)

建立空白檔案,用於儲存壓縮的記錄資料。

OutputStream createGZipLogStream(File logFile)

Creates a output stream to write GZIP-compressed data to a file

InputStream createInputStreamFromFile(File logFile)

輔助方法,用於建立輸入串流,以讀取指定記錄檔的內容。

TODO: consider moving this method elsewhere.

File getFileDir()

取得用來儲存檔案的目錄。

List<String> getInvocationLogPathSegments()
File saveAndGZipLogData(String dataName, LogDataType dataType, InputStream dataStream)

視需要將記錄資料儲存並壓縮為 gzip 檔案

File saveAndGZipLogFile(String dataName, LogDataType dataType, File fileToLog)

視需要將記錄資料儲存並壓縮為 gzip 檔案

File saveLogData(String dataName, LogDataType dataType, InputStream dataStream)

將記錄資料儲存至檔案

File saveLogDataRaw(String dataName, String ext, InputStream dataStream)

將原始資料儲存至檔案

File saveLogFile(String dataName, LogDataType dataType, File fileToLog)

儲存指定記錄檔

公用建構函式

LogFileSaver

public LogFileSaver (IBuildInfo buildInfo, 
                File rootDir)

建立 LogFileSaver

在 rootDir/branch/build_id/uniqueDir 中建構專屬檔案系統目錄

參數
buildInfo IBuildInfoIBuildInfo

rootDir File:根檔案系統路徑

LogFileSaver

public LogFileSaver (IBuildInfo buildInfo, 
                File rootDir, 
                Integer logRetentionDays)

建立 LogFileSaver

在 rootDir/branch/build_id/testTag/uniqueDir 中建構專屬檔案系統目錄

如果無法建立目錄,系統會使用臨時目錄。

參數
buildInfo IBuildInfoIBuildInfo

rootDir File:根檔案系統路徑

logRetentionDays Integer:如果提供,系統會將「.retention」檔案寫入記錄目錄,其中包含等於目前時間 + logRetentionDays 的時間戳記。外部清除指令碼可使用這個檔案,判斷何時要刪除記錄目錄。

LogFileSaver

public LogFileSaver (IBuildInfo buildInfo, 
                File rootDir, 
                Integer logRetentionDays, 
                Boolean containInvDir)

建立 LogFileSaver

在 rootDir/branch/build_id/testTag/uniqueDir 中建構專屬檔案系統目錄

如果無法建立目錄,系統會使用臨時目錄。

參數
buildInfo IBuildInfoIBuildInfo

rootDir File:根檔案系統路徑

logRetentionDays Integer:如果提供,系統會將「.retention」檔案寫入記錄目錄,其中包含等於目前時間 + logRetentionDays 的時間戳記。外部清除指令碼可使用這個檔案,判斷何時要刪除記錄目錄。

containInvDir Boolean

LogFileSaver

public LogFileSaver (File rootDir)

替代的 LogFileSaver 建構函式,只會將指定目錄做為記錄儲存目錄。

公用方法

createCompressedLogFile

public File createCompressedLogFile (String dataName, 
                LogDataType origDataType)

建立空白檔案,用於儲存壓縮的記錄資料。

參數
dataName String:要儲存資料的String說明名稱。

origDataType LogDataType:要儲存的 LogDataType 類型

傳回
File File

擲回
IOException 如果無法建立記錄檔

createGZipLogStream

public OutputStream createGZipLogStream (File logFile)

建立輸出串流,將 GZIP 壓縮資料寫入檔案

參數
logFile File:要寫入的 File

傳回
OutputStream 將資料壓縮並寫入檔案。OutputStream完成時會顯示這個串流

擲回
IOException 如果無法產生串流

createInputStreamFromFile

public InputStream createInputStreamFromFile (File logFile)

輔助方法,用於建立輸入串流,以讀取指定記錄檔的內容。

TODO:考慮將這個方法移到其他位置。Placed here for now so it e users of this class to mock.

參數
logFile File:要讀取的 File

傳回
InputStream 用於讀取檔案資料的緩衝 InputStream。呼叫端必須在完成時呼叫這個串流

擲回
IOException 如果無法產生串流

getFileDir

public File getFileDir ()

取得用於儲存檔案的目錄。

傳回
File File 目錄

getInvocationLogPathSegments

public List<String> getInvocationLogPathSegments ()

傳回
List<String> 不重複的叫用記錄路徑區隔。

saveAndGZipLogData

public File saveAndGZipLogData (String dataName, 
                LogDataType dataType, 
                InputStream dataStream)

將記錄資料儲存並壓縮 (如有必要) 為 gzip 檔案

參數
dataName String:資料的String說明名稱。

dataType LogDataType:檔案的 LogDataType。記錄資料 (即 LogDataType.isCompressed()true)

dataStream InputStream:資料的 InputStream

傳回
File 生成的資料檔案

擲回
IOException 如果無法產生記錄檔

saveAndGZipLogFile

public File saveAndGZipLogFile (String dataName, 
                LogDataType dataType, 
                File fileToLog)

將記錄資料儲存並壓縮 (如有必要) 為 gzip 檔案

參數
dataName String:資料的String說明名稱。

dataType LogDataType:檔案的 LogDataType。記錄資料 (即 LogDataType.isCompressed()true)

fileToLog File:要儲存的 File

傳回
File 生成的資料檔案

擲回
IOException 如果無法產生記錄檔

saveLogData

public File saveLogData (String dataName, 
                LogDataType dataType, 
                InputStream dataStream)

將記錄資料儲存至檔案

參數
dataName String:資料的String說明名稱。

dataType LogDataType:檔案的 LogDataType

dataStream InputStream:資料的 InputStream

傳回
File 生成的資料檔案

擲回
IOException 如果無法產生記錄檔

saveLogDataRaw

public File saveLogDataRaw (String dataName, 
                String ext, 
                InputStream dataStream)

將原始資料儲存至檔案

參數
dataName String:資料的String說明名稱。

ext String:日期延期

dataStream InputStream:資料的 InputStream

傳回
File 生成的資料檔案

擲回
IOException 如果無法產生記錄檔

saveLogFile

public File saveLogFile (String dataName, 
                LogDataType dataType, 
                File fileToLog)

儲存指定記錄檔

參數
dataName String:資料的String說明名稱。

dataType LogDataType:檔案的 LogDataType

fileToLog File:要記錄的 File

傳回
File 生成的資料檔案

擲回
IOException 如果無法產生記錄檔