# Dynamical Logging The OAP server leverages `log4j2` to manage the logging system. `log4j2` supports changing the configuration at runtime, but you have to manually update the XML configuration file, which could be time-consuming and prone to man-made mistakes. Dynamical logging, which depends on dynamic configuration, provides us with an agile way to update all OAP `log4j` configurations through a single operation. The key of the configuration item is `core.default.log4j-xml`, and you can select any of the configuration implements to store the content of `log4j.xml`. In the booting phase, once the core module gets started, `core.default.log4j-xml` would come into the OAP log4j context. If the configuration is changed after the OAP startup, you have to wait for a while for the changes to be applied. The default value is `60` seconds, which you could change through `configuration..period` in `application.yaml`. If you remove `core.default.log4j-xml` from the configuration center or disable the configuration module, `log4j.xml` in the `config` directory would be affected. > Caveat: The OAP only supports the XML configuration format. This is an example of configuring dynamical logging through a ConfigMap in a Kubernetes cluster. You may set up other configuration clusters following the same procedures. ```yaml apiVersion: v1 data: core.default.log4j-xml: |- kind: ConfigMap metadata: labels: app: collector release: skywalking name: skywalking-oap namespace: default ```