Setup rolling logs

This commit is contained in:
Manfred Karrer 2015-03-13 21:50:28 +01:00
parent f9c6f2967b
commit c5967f1494
9 changed files with 92 additions and 35 deletions

View file

@ -102,7 +102,7 @@ public class BootstrapNode {
log.info(peerAddress.toString()); log.info(peerAddress.toString());
} }
try { try {
Thread.sleep(60000); Thread.sleep(10000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
return; return;
} }

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ This file is part of Bitsquare.
~
~ Bitsquare is free software: you can redistribute it and/or modify it
~ under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or (at
~ your option) any later version.
~
~ Bitsquare is distributed in the hope that it will be useful, but WITHOUT
~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
~ License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
-->
<configuration>
<appender name="CONSOLE_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %xEx%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>bootstrapNode.log</file>
<append>false</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>bootstrapNode_%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %xEx%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE_APPENDER"/>
<appender-ref ref="FILE"/>
</root>
<logger name="net.tomp2p" level="INFO"/>
<logger name="io.bitsquare" level="INFO"/>
<logger name="org.bitcoinj" level="WARN"/>
<logger name="com.vinumeris.updatefx" level="WARN"/>
</configuration>

View file

@ -1,5 +0,0 @@
#Generated by Maven
#Fri Mar 13 20:18:14 CET 2015
version=0.1.2-SNAPSHOT
groupId=io.bitsquare
artifactId=bootstrap

View file

@ -53,6 +53,7 @@ public class RequestIsOfferAvailable extends Task<CheckOfferAvailabilityModel> {
@Override @Override
protected void applyErrorState() { protected void applyErrorState() {
if (model.getOffer().getState() != Offer.State.OFFERER_OFFLINE)
model.getOffer().setState(Offer.State.AVAILABILITY_CHECK_FAILED); model.getOffer().setState(Offer.State.AVAILABILITY_CHECK_FAILED);
} }
} }

View file

@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory;
public abstract class Task<T extends SharedModel> { public abstract class Task<T extends SharedModel> {
private static final Logger log = LoggerFactory.getLogger(Task.class); private static final Logger log = LoggerFactory.getLogger(Task.class);
public static Class<? extends Task> taskToInterceptBeforeRun; public static Class<? extends Task> taskToInterceptBeforeRun;
public static Class<? extends Task> taskToInterceptAfterRun; public static Class<? extends Task> taskToInterceptAfterRun;
@ -35,8 +36,8 @@ public abstract class Task<T extends SharedModel> {
} }
protected void run() { protected void run() {
interceptBeforeRun();
try { try {
interceptBeforeRun();
doRun(); doRun();
} catch (Throwable t) { } catch (Throwable t) {
appendExceptionToErrorMessage(t); appendExceptionToErrorMessage(t);
@ -44,7 +45,6 @@ public abstract class Task<T extends SharedModel> {
} }
} }
abstract protected void doRun(); abstract protected void doRun();
protected void applyErrorState() { protected void applyErrorState() {
@ -52,12 +52,12 @@ public abstract class Task<T extends SharedModel> {
private void interceptBeforeRun() { private void interceptBeforeRun() {
if (getClass() == taskToInterceptBeforeRun) if (getClass() == taskToInterceptBeforeRun)
throw new InterceptTaskException("Task intercepted before run executed: task = " + getClass().getSimpleName()); throw new InterceptTaskException("Task intercepted before run got executed. Task = " + getClass().getSimpleName());
} }
private void interceptBeforeComplete() { private void interceptBeforeComplete() {
if (getClass() == taskToInterceptAfterRun) if (getClass() == taskToInterceptAfterRun)
throw new InterceptTaskException("Task intercepted before complete called: task = " + getClass().getSimpleName()); throw new InterceptTaskException("Task intercepted before complete was called. Task = " + getClass().getSimpleName());
} }
protected void appendToErrorMessage(String message) { protected void appendToErrorMessage(String message) {
@ -69,7 +69,12 @@ public abstract class Task<T extends SharedModel> {
} }
protected void complete() { protected void complete() {
try {
interceptBeforeComplete(); interceptBeforeComplete();
} catch (Throwable t) {
appendExceptionToErrorMessage(t);
failed();
}
taskHandler.handleComplete(); taskHandler.handleComplete();
} }

View file

@ -54,8 +54,7 @@ public class TaskRunner<T extends SharedModel> {
} }
protected void next() { protected void next() {
if (!failed && !isCanceled) { if (!failed && !isCanceled && tasks.size() > 0) {
if (tasks.size() > 0) {
try { try {
currentTask = tasks.poll(); currentTask = tasks.poll();
log.trace("Run task: " + currentTask.getSimpleName()); log.trace("Run task: " + currentTask.getSimpleName());
@ -69,7 +68,6 @@ public class TaskRunner<T extends SharedModel> {
resultHandler.handleResult(); resultHandler.handleResult();
} }
} }
}
public void cancel() { public void cancel() {
isCanceled = true; isCanceled = true;

View file

@ -6,22 +6,26 @@
</encoder> </encoder>
</appender> </appender>
<!-- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
--> <file>bitsquare.log</file>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>bitsquare_out.log</file>
<append>false</append> <append>false</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>bitsquare.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize>
</triggeringPolicy>
<encoder> <encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %xEx%n</pattern> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %xEx%n</pattern>
</encoder> </encoder>
</appender> </appender>
<root level="INFO">
<root level="WARN">
<appender-ref ref="CONSOLE_APPENDER"/> <appender-ref ref="CONSOLE_APPENDER"/>
<!--
<appender-ref ref="FILE"/> <appender-ref ref="FILE"/>
-->
</root> </root>
<logger name="io.bitsquare" level="TRACE"/> <logger name="io.bitsquare" level="TRACE"/>