DeviceLogger.swift 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Copyright 2021 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. import Foundation
  15. @_implementationOnly import FirebaseCoreExtension
  16. /// Enum of log messages.
  17. enum LoggerMessageCode: Int {
  18. case downloaderInstanceCreated = 1
  19. case downloaderInstanceRetrieved
  20. case downloaderInstanceDeleted
  21. case modelDownloaded
  22. case modelDownloadError
  23. case retryDownload
  24. case backgroundModelDownloaded
  25. case backgroundDownloadError
  26. case disableBackupError
  27. case downloadedModelFileSaved
  28. case downloadedModelSaveError
  29. case anotherDownloadInProgressError
  30. case invalidDownloadSessionError
  31. case mergeRequests
  32. case localModelFound
  33. case allLocalModelsFound
  34. case listModelsError
  35. case modelNameParseError
  36. case noLocalModelInfo
  37. case noLocalModelFile
  38. case outdatedModelPathError
  39. case modelDeleted
  40. case modelDeletionFailed
  41. case validHTTPResponse
  42. case validAuthToken
  43. case invalidOptions
  44. case invalidModelInfoFetchURL
  45. case downloadedModelInfoSaved
  46. case missingModelHash
  47. case invalidModelInfoJSON
  48. case modelInfoDeleted
  49. case modelInfoDownloaded
  50. case modelInfoUnmodified
  51. case authTokenError
  52. case expiredModelInfo
  53. case modelHashMismatchError
  54. case noModelHash
  55. case modelInfoRetrievalError
  56. case modelNotFound
  57. case invalidArgument
  58. case permissionDenied
  59. case resourceExhausted
  60. case notEnoughSpace
  61. case hostnameError
  62. case invalidHTTPResponse
  63. case analyticsEventEncodeError
  64. case telemetryInitError
  65. case testError
  66. }
  67. /// On-device logger.
  68. enum DeviceLogger {
  69. /// Log identifier.
  70. static let service = "[Firebase/MLModelDownloader]"
  71. static func logEvent(level: FirebaseLoggerLevel, message: String,
  72. messageCode: LoggerMessageCode) {
  73. let code = String(format: "I-MLM%06d", messageCode.rawValue)
  74. FirebaseLogger.log(level: level, service: DeviceLogger.service, code: code, message: message)
  75. }
  76. }