- CPS-10Getting issue details... STATUS
Sources
ONAP Application Logging Specification v1.2 (Casablanca)#HowtoLog
Issues/Decisions
# | Issue/Decision | Notes | Decision |
---|---|---|---|
1 | The application should only logs to stdout and not in files? |
| Meeting Notes 11/12/20
|
2 | Do we need a second appender for errors? | Meeting Notes 11/12/20 The logging enhancement team has proposed to split the log to multiple files:
Toine has suggested we follow this approach but exclude error logging. Before making anymore decisions we will investigate this project as we have some concerns about the logging standards in the logging enhancement project. | |
3 | Is the file location ok? | ../log/${logName}.log I think this is ok. Logs will be placed in pods once deployed. I think we will need to set a property in our SpringBootApplication class for the log dir. | |
4 | Disk space | <property name="maxFileSize" value="20MB" /> Once the log reaches this value it is zipped. |
Current Log Config
Dependencies used
<dependency> <!-- For logging --> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency>
Logging level is configured in the application.yaml
... logging: level: org: springframework: INFO
Logback configuration is done in logback-spring.xml
<configuration scan="true" debug="false"> <include resource="org/springframework/boot/logging/logback/base.xml" /> <property name="queueSize" value="256" /> <property name="maxFileSize" value="20MB" /> <property name="maxHistory" value="30" /> <property name="totalSizeCap" value="20MB" /> <!-- log file names --> <property name="logName" value="cps" /> <property name="currentTimeStamp" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",UTC}"/> <property name="debugPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%thread|%X{RequestID}| %logger{50} - %msg%n" /> <appender name="Debug" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>../log/${logName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${logName}.%d{yyyy-MM-dd}.%i.log.zip </fileNamePattern> <maxFileSize>${maxFileSize}</maxFileSize> <maxHistory>${maxHistory}</maxHistory> <totalSizeCap>${totalSizeCap}</totalSizeCap> </rollingPolicy> <encoder> <pattern>${debugPattern}</pattern> </encoder> </appender> <appender name="asyncDebug" class="ch.qos.logback.classic.AsyncAppender"> <queueSize>256</queueSize> <appender-ref ref="Debug" /> <includeCallerData>true</includeCallerData> </appender> <logger name="org.onap.cps" level="DEBUG" additivity="false"> <appender-ref ref="asyncDebug" /> </logger> <root level="INFO"> <appender-ref ref="asyncDebug" /> </root> </configuration>
To generate logging add the following parameter and imports
import lombok.extern.slf4j.Slf4j; @Slf4j
Log files are generated in your development workspace folder - ../log/${logName}.log
2020-12-09T11:31:51.792Z|qtp1971152916-37|| org.onap.cps.rest.controller.CpsRestController - error message
2020-12-09T11:31:51.792Z|qtp1971152916-37|| org.onap.cps.rest.controller.CpsRestController - debug message