PlanetKit 초기화 및 로그 설정
애플리케이션에서 LINE Planet의 기능을 사용하기 전에 PlanetKit을 초기화해야 합니다. 여기서는 PlanetKit을 초기화하고 로그를 설정하는 예제 코드를 제공합니다.
초기화
PlanetKitInitialSettingBuilder 객체를 인자로 PlanetKitManager의 initialize()를 호출해 PlanetKit을 초기화하세요. 이때 반드시 planet_base_url을 설정해야 합니다.
환경별 planet_base_url 정보는 개발 환경에서 찾을 수 있습니다.
class YourApplication {
func initializePlanetKit() {
let logDirectory = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!
.appendingPathComponent("PlanetKitLogs")
try! FileManager.default.createDirectory(at: logDirectory, withIntermediateDirectories: true)
let logOption = PlanetKitLogOption.withSizeLimit(
logDirectory: logDirectory.path,
logLevel: .simple,
logSizeLimit: .small
)
let settingBuilder = PlanetKitInitialSettingBuilder()
.withEnableLog(logOption: logOption!)
.withSetKitServerKey(serverUrl: planet_base_url)
let initialSettings = settingBuilder.build()
PlanetKitManager.shared.initialize(initialSettings: initialSettings)
...
}
}
로그 설정
디버깅이 필요한 경우 초기화 중에 PlanetKitInitialSettingBuilder 클래스의 withEnableLog(logOption:) 메서드를 사용하여 로깅을 설정해야 합니다. PlanetKit은 PlanetKitLogOption 클래스에서 유연한 로그 설정을 위한 메서드를 제공합니다.
- 기본적으로 로깅은 비활성화되어 있습니다.
- PlanetKit 5.1부터 로그는 파일로만 출력할 수 있습니다.
로그 수준
로그 수준을 설정하여 출력되는 디버그 정보의 수준을 조정할 수 있습니다. PlanetKitLogLevel enum에서 제공하는 로그 레벨 설정은 다음과 같습니다:
simple: PlanetKit이 간단한 디버그 정보를 출력합니다.detailed: PlanetKit이 자세한 디버그 정보를 출력합니다.
LINE Planet 팀에 디버깅을 요청하려면 detailed 수준으로 생성된 로그 파일을 전달해 주어야 합니다.
크기 제한이 있는 로깅 설정
크기 제한에 도달하면 자동 로테이션되는 로깅을 설정하려면 withSizeLimit(logDirectory:logLevel:logSizeLimit:) 메서드를 사용하세요.
- 로그 파일 이름
- 로그 파일은 내부 로직에 따라 로테이션이 적용되어 생성됩니다(예:
planetkit.log,planetkit.log.1,planetkit.log.2).
- 로그 파일은 내부 로직에 따라 로테이션이 적용되어 생성됩니다(예:
- 로그 레벨
logLevel파라미터의 기본값은simple입니다.
- 로그 크기 제한
PlanetKitLogSizeLimitenum에서 제공하는 로그 크기 제한 설정은 다음과 같습니다.small: 전체 로그 파일의 크기 제한은 16MB입니다.medium: 전체 로그 파일의 크기 제한은 64MB입니다.large: 전체 로그 파일의 크기 제한은 256MB입니다.
logSizeLimit파라미터의 기본값은large입니다.
다음은 크기 제한이 있는 로깅을 설정하는 예제 코드입니다.
let logDirectory = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!
.appendingPathComponent("PlanetKitLogs")
try! FileManager.default.createDirectory(at: logDirectory, withIntermediateDirectories: true)
let logOption = PlanetKitLogOption.withSizeLimit(
logDirectory: logDirectory.path,
logLevel: .simple,
logSizeLimit: .small
)
let settings = PlanetKitInitialSettingBuilder()
.withEnableLog(logOption: logOption!)
.withSetKitServerKey(serverUrl: planet_base_url)
.build()
PlanetKitManager.shared.initialize(initialSettings: settings)
크기 제한 없는 로깅 설정
크기 제한 없는 로깅을 설정하려면 withSizeLimitUnlimited(logDirectory:logFileName:logLevel:) 메서드를 사용하세요.
- 로그 파일 이름
- 시스템이 생성하는 로그 파일의 기본 형식은 타임스탬프가 포함된
planetkitMMDD_HHMMSS.log입니다. - 필요에 따라
logFileName파라미터로 사용자 지정 파일 이름을 설정할 수 있습니다.
- 시스템이 생성하는 로그 파일의 기본 형식은 타임스탬프가 포함된
- 로그 레벨
logLevel파라미터의 기본값은simple입니다.
다음은 크기 제한이 없는 로깅을 설정하는 예제 코드입니다.
let logDirectory = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!
.appendingPathComponent("PlanetKitLogs")
try! FileManager.default.createDirectory(at: logDirectory, withIntermediateDirectories: true)
let logOption = PlanetKitLogOption.withSizeLimitUnlimited(
logDirectory: logDirectory.path,
logFileName: "myapp.log", // Optional: specify custom file name
logLevel: .detailed
)
let settings = PlanetKitInitialSettingBuilder()
.withEnableLog(logOption: logOption!)
.withSetKitServerKey(serverUrl: planet_base_url)
.build()
PlanetKitManager.shared.initialize(initialSettings: settings)