Below is my logback configuration
<appender name="TIME_BASED_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>C:\\Users\\ADMIN\\Documents\\NetBeansProjects\\timelog.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>C:\\Users\\ADMIN\\Documents\\NetBeansProjects\\timelog.%d{yyyy-MM-dd-HH-mm}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>1M</maxFileSize>
<totalSizeCap>10M</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="timeBased" level="INFO">
<appender-ref ref="TIME_BASED_FILE"/>
<appender-ref ref="consoleAppender"/>
</logger>
Code:
public class Test {
public static void main(String [] args) {
Logger logger = (Logger)LoggerFactory.getLogger("timeBased");
logger.info("info");
}
}
This code only prints on console, no file is created in specified directory. Folder has all write permissions. What is going wrong? Logback doesn't show any errors also. Please help. I am using windows7.
You need to replace M to MB and correct fileName pattern The example below works for me:
<appender name="TIME_BASED_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>C:\\Users\\ADMIN\\Documents\\NetBeansProjects\\timelog.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>C:\\Users\\admin\\Documents\\NetBeansProjects\\timelog.%d{yyyy-MM-dd-HH-mm}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>1MB</maxFileSize>
<totalSizeCap>10MB</totalSizeCap>
</rollingPolicy>
<encoder >
<pattern>%relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>