1# @ohos.logLibrary (维测日志获取) 2 3本模块提供了获取各类系统维测日志的能力。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> - 本模块的接口为系统接口。 9 10## 导入模块 11 12```ts 13import logLibrary from '@ohos.logLibrary'; 14``` 15 16## LogEntry 17 18日志文件对象接口。 19 20**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 21 22| 名称 | 类型 | 可读 | 可写 | 说明 | 23| -------- | -------- | -------- | -------- | -------- | 24| name | string | 是 | 否 | 文件名称。 | 25| mtime | number | 是 | 否 | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 | 26| size | number | 是 | 否 | 文件大小,以字节为单位。 | 27 28## logLibrary.list 29 30list(logType: string): LogEntry[] 31 32以同步方法查询指定类型的日志文件列表,接收string类型的对象作为参数,返回指定类型日志的文件列表信息。 33 34**需要权限:** ohos.permission.READ_HIVIEW_SYSTEM 35 36**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 37 38**参数:** 39 40| 参数名 | 类型 | 必填 | 说明 | 41| --------- | ------------------------- | ---- | ------------------------------------------------------------ | 42| logType | string | 是 | 日志类型字符串,例如“HILOG”, "FAULTLOG", "BETACLUB", "REMOTELOG"等。 | 43 44**返回值:** 45 46| 类型 | 说明 | 47| ------------------- | ------------------------------------------------------------ | 48| LogEntry[] | 日志文件对象的数组。 | 49 50**错误码:** 51 52以下错误码的详细介绍请参见[维测日志错误码](../errorcodes/errorcode-loglibrary.md)。 53 54| 错误码ID | 错误信息 | 55| ------- | ----------------------------------------------------------------- | 56| 201 | Permission denied. | 57| 202 | Permission denied, non-system app called system api. | 58| 401 | Invalid argument.| 59 60**示例:** 61 62```ts 63import logLibrary from '@ohos.logLibrary'; 64 65try { 66 let logObj = logLibrary.list('HILOG'); 67 // do something here. 68} catch (error) { 69 console.error(`error code: ${error?.code}, error msg: ${error?.message}`); 70} 71``` 72 73## logLibrary.copy 74 75copy(logType: string, logName: string, dest: string): Promise<void> 76 77拷贝指定日志类型的指定文件到目标应用目录下。使用Promise回调。 78 79**需要权限:** ohos.permission.READ_HIVIEW_SYSTEM 80 81**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 82 83**参数:** 84 85| 参数名 | 类型 | 必填 | 说明 | 86| --------- | ----------------------- | ---- | --------------- | 87| logType | string | 是 | 日志类型字符串,例如“HILOG”, "FAULTLOG", "BETACLUB", "REMOTELOG"等。 | 88| logName | string | 是 | 日志文件名称。 | 89| dest | string | 是 | 目标目录,需填入相对目录名称。传入dest字串后,日志文件将保存到应用缓存路径下的"hiview/*dest*"文件夹,即"../cache/hiview/*dest*"。可填入多层目录。<br>如果传入空字串,将保存到根目录下,即应用缓存路径下的hiview文件夹。 | 90 91**返回值:** 92 93| 类型 | 说明 | 94| ------------------- | ------------------------------------------------------------ | 95| Promise<void> | Promise实例,可以在其then()、catch()方法中分别对拷贝成功、拷贝异常的回调进行处理。 | 96 97**错误码:** 98 99以下错误码的详细介绍请参见[维测日志错误码](../errorcodes/errorcode-loglibrary.md)。 100 101| 错误码ID | 错误信息 | 102| -------- | ---------------------------------------------------------------- | 103| 201 | Permission denied. | 104| 202 | Permission denied, non-system app called system api. | 105| 401 | Invalid argument.| 106| 21300001 | Source file does not exists. | 107 108**示例:** 109 110```ts 111import logLibrary from '@ohos.logLibrary'; 112import { BusinessError } from '@ohos.base'; 113 114try { 115 logLibrary.copy('HILOG', 'hiapplogcat-1.zip', '' 116 ).then( 117 (val) => { 118 // do something here. 119 } 120 ).catch( 121 (err: BusinessError) => { 122 // do something here. 123 } 124 ) 125} catch (error) { 126 console.error(`error code: ${error?.code}, error msg: ${error?.message}`); 127} 128``` 129 130## logLibrary.copy 131 132copy(logType: string, logName: string, dest: string, callback: AsyncCallback<void>): void 133 134拷贝指定日志类型的指定文件到目标应用目录下。使用callback回调。 135 136**需要权限:** ohos.permission.READ_HIVIEW_SYSTEM 137 138**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 139 140**参数:** 141 142| 参数名 | 类型 | 必填 | 说明 | 143| --------- | ------------------------- | ---- | ------------------------------------------------------------ | 144| logType | string | 是 | 日志类型字符串,例如“HILOG”, "FAULTLOG", "BETACLUB", "REMOTELOG"等。 | 145| logName | string | 是 | 日志文件名称。 | 146| dest | string | 是 | 目标目录,需填入相对目录名称。传入dest字串后,日志文件将保存到应用缓存路径下的"hiview/*dest*"文件夹,即"../cache/hiview/*dest*"。可填入多层目录。<br>如果传入空字串,将保存到根目录下,即应用缓存路径下的hiview文件夹。 | 147| callback | AsyncCallback<void> | 是 | 回调函数,可以在回调函数中处理接口返回值。0表示拷贝成功,其它值表示拷贝失败。 | 148 149**错误码:** 150 151以下错误码的详细介绍请参见[维测日志错误码](../errorcodes/errorcode-loglibrary.md)。 152 153| 错误码ID | 错误信息 | 154| ------- | ----------------------------------------------------------------- | 155| 201 | Permission denied. | 156| 202 | Permission denied, non-system app called system api. | 157| 401 | Invalid argument.| 158| 21300001 | Source file does not exists. | 159 160**示例:** 161 162```ts 163import logLibrary from '@ohos.logLibrary'; 164 165try { 166 logLibrary.copy('HILOG', 'hiapplogcat-1.zip', 'dir1', (error, val) => { 167 if (val === undefined) { 168 // copy failed. 169 } else { 170 // copy success. 171 } 172 }); 173} catch (error) { 174 console.error(`error code: ${error?.code}, error msg: ${error?.message}`); 175} 176``` 177 178## logLibrary.move 179 180move(logType: string, logName: string, dest: string): Promise<void> 181 182移动指定日志类型的指定文件到目标应用目录下。使用Promise回调。 183 184**需要权限:** ohos.permission.WRITE_HIVIEW_SYSTEM 185 186**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 187 188**参数:** 189 190| 参数名 | 类型 | 必填 | 说明 | 191| --------- | ----------------------- | ---- | --------------- | 192| logType | string | 是 | 日志类型字符串,例如"FAULTLOG", "BETACLUB", "REMOTELOG"等。 | 193| logName | string | 是 | 日志文件名称。 | 194| dest | string | 是 | 目标目录,需填入相对目录名称。传入dest字串后,日志文件将保存到应用缓存路径下的"hiview/*dest*"文件夹,即"../cache/hiview/*dest*"。可填入多层目录。<br>如果传入空字串,将保存到根目录下,即应用缓存路径下的hiview文件夹。 | 195 196**返回值:** 197 198| 类型 | 说明 | 199| ------------------- | ------------------------------------------------------------ | 200| Promise<void> | Promise实例,可以在其then()、catch()方法中分别对移动成功、移动异常的回调进行处理。 | 201 202**错误码:** 203 204以下错误码的详细介绍请参见[维测日志错误码](../errorcodes/errorcode-loglibrary.md)。 205 206| 错误码ID | 错误信息 | 207| -------- | ---------------------------------------------------------------- | 208| 201 | Permission denied. | 209| 202 | Permission denied, non-system app called system api. | 210| 401 | Invalid argument.| 211| 21300001 | Source file does not exists. | 212 213**示例:** 214 215```ts 216import logLibrary from '@ohos.logLibrary'; 217import { BusinessError } from '@ohos.base'; 218 219try { 220 logLibrary.move('FAULTLOG', 'fault_log_test.zip', '' 221 ).then( 222 (val) => { 223 // do something here. 224 } 225 ).catch( 226 (err: BusinessError) => { 227 // do something here. 228 } 229 ) 230} catch (error) { 231 console.error(`error code: ${error?.code}, error msg: ${error?.message}`); 232} 233``` 234 235## logLibrary.move 236 237move(logType: string, logName: string, dest: string, callback: AsyncCallback<void>): void 238 239移动指定日志类型的指定文件到目标应用目录下。使用callback回调。 240 241**需要权限:** ohos.permission.WRITE_HIVIEW_SYSTEM 242 243**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 244 245**参数:** 246 247| 参数名 | 类型 | 必填 | 说明 | 248| --------- | ------------------------- | ---- | ------------------------------------------------------------ | 249| logType | string | 是 | 日志类型字符串,例如“HILOG”, "FAULTLOG", "BETACLUB", "REMOTELOG"等。 | 250| logName | string | 是 | 日志文件名称。 | 251| dest | string | 是 | 目标目录,需填入相对目录名称。传入dest字串后,日志文件将保存到应用缓存路径下的"hiview/*dest*"文件夹,即"../cache/hiview/*dest*"。可填入多层目录。<br>如果传入空字串,将保存到根目录下,即应用缓存路径下的hiview文件夹。 | 252| callback | AsyncCallback<void> | 是 | 回调函数,可以在回调函数中处理接口返回值。0表示移动成功,其它值表示移动失败。 | 253 254**错误码:** 255 256以下错误码的详细介绍请参见[维测日志错误码](../errorcodes/errorcode-loglibrary.md)。 257 258| 错误码ID | 错误信息 | 259| ------- | ----------------------------------------------------------------- | 260| 201 | Permission denied. | 261| 202 | Permission denied, non-system app called system api. | 262| 401 | Invalid argument.| 263| 21300001 | Source file does not exists. | 264 265**示例:** 266 267```ts 268import logLibrary from '@ohos.logLibrary'; 269 270try { 271 logLibrary.move('FAULTLOG', 'fault_log_test.zip', 'dir1/dir2', (error, val) => { 272 if (val === undefined) { 273 // move failed. 274 } else { 275 // move success. 276 } 277 }); 278} catch (error) { 279 console.error(`error code: ${error?.code}, error msg: ${error?.message}`); 280} 281``` 282 283## logLibrary.remove 284 285remove(logType: string, logName: string): void 286 287以同步方法删除指定日志类型的指定文件。 288 289**需要权限:** ohos.permission.WRITE_HIVIEW_SYSTEM 290 291**系统能力:** SystemCapability.HiviewDFX.Hiview.LogLibrary 292 293**参数:** 294 295| 参数名 | 类型 | 必填 | 说明 | 296| --------- | ------------------------- | ---- | ------------------------------------------------------------ | 297| logType | string | 是 | 日志类型字符串,例如"FAULTLOG", "BETACLUB", "REMOTELOG"等。 | 298| logName | string | 是 | 日志文件名称。 | 299 300**错误码:** 301 302以下错误码的详细介绍请参见[维测日志错误码](../errorcodes/errorcode-loglibrary.md)。 303 304| 错误码ID | 错误信息 | 305| ------- | ----------------------------------------------------------------- | 306| 201 | Permission denied. | 307| 202 | Permission denied, non-system app called system api. | 308| 401 | Invalid argument.| 309| 21300001 | Source file does not exists. | 310 311**示例:** 312 313```ts 314import logLibrary from '@ohos.logLibrary'; 315 316try { 317 logLibrary.remove('FAULTLOG', 'fault_log_test.zip'); 318} catch (error) { 319 console.error(`error code: ${error?.code}, error msg: ${error?.message}`); 320} 321```