PlanetKit initialization and log setting
You must initialize PlanetKit before using any functions of LINE Planet in your application. This page provides a code example for initializing PlanetKit and configuring log settings.
Initialization
Initialize PlanetKit using initialize() of PlanetKitManger with a PlanetKitInitialSettingBuilder object. You must set planet_base_url when calling initialize().
You can find planet_base_url for each environment in Development environment.
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)
...
}
}
Log setting
If you need to debug, you must configure logging using the withEnableLog(logOption:) method of the PlanetKitInitialSettingBuilder class during initialization. PlanetKit provides the PlanetKitLogOption class with methods for flexible log configuration.
- By default, the logging is disabled.
- Starting with PlanetKit 5.1, logs can be output to files only.
Log levels
You can adjust the level of debug information output by setting the log level. Log level settings available in the PlanetKitLogLevel enum are as follows:
simple: PlanetKit outputs simple debug information.detailed: PlanetKit outputs detailed debug information.
To request debugging from the LINE Planet team, you must send a log file created with the detailed level.
Configure logging with size limit
To configure logging with automatic rotation when the size limit is reached, use the withSizeLimit(logDirectory:logLevel:logSizeLimit:) method.
- Log file name
- Log files are created according to internal logic, applying the rotation (for example,
planetkit.log,planetkit.log.1,planetkit.log.2).
- Log files are created according to internal logic, applying the rotation (for example,
- Log level
- The default value of the
logLevelparameter issimple.
- The default value of the
- Log size limit
- Log size limit settings available in the
PlanetKitLogSizeLimitenum are as follows:small: The total size limit of log files is 16MB.medium: The total size limit of log files is 64MB.large: The total size limit of log files is 256MB.
- The default value of the
logSizeLimitparameter islarge.
- Log size limit settings available in the
The following is an example of configuring logging with size limit.
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)
Configure logging without size limit
To configure logging without a size limit, use the withSizeLimitUnlimited(logDirectory:logFileName:logLevel:) method.
- Log file name
- The default format of the log file created by the system is
planetkitMMDD_HHMMSS.log, which includes a timestamp. - Optionally, you can set a custom file name in the
logFileNameparameter.
- The default format of the log file created by the system is
- Log level
- The default value of the
logLevelparameter issimple.
- The default value of the
The following is an example of configuring logging without size limit.
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)