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());
}
try {
Thread.sleep(60000);
Thread.sleep(10000);
} catch (InterruptedException e) {
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

@ -86,7 +86,7 @@ public class Offer implements Serializable {
// don't access directly as it might be null; use getStateProperty() which creates an object if not instantiated
private transient ObjectProperty<State> stateProperty;
///////////////////////////////////////////////////////////////////////////////////////////
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////

View File

@ -53,7 +53,8 @@ public class RequestIsOfferAvailable extends Task<CheckOfferAvailabilityModel> {
@Override
protected void applyErrorState() {
model.getOffer().setState(Offer.State.AVAILABILITY_CHECK_FAILED);
if (model.getOffer().getState() != Offer.State.OFFERER_OFFLINE)
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> {
private static final Logger log = LoggerFactory.getLogger(Task.class);
public static Class<? extends Task> taskToInterceptBeforeRun;
public static Class<? extends Task> taskToInterceptAfterRun;
@ -35,8 +36,8 @@ public abstract class Task<T extends SharedModel> {
}
protected void run() {
interceptBeforeRun();
try {
interceptBeforeRun();
doRun();
} catch (Throwable t) {
appendExceptionToErrorMessage(t);
@ -44,7 +45,6 @@ public abstract class Task<T extends SharedModel> {
}
}
abstract protected void doRun();
protected void applyErrorState() {
@ -52,12 +52,12 @@ public abstract class Task<T extends SharedModel> {
private void interceptBeforeRun() {
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() {
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) {
@ -69,7 +69,12 @@ public abstract class Task<T extends SharedModel> {
}
protected void complete() {
interceptBeforeComplete();
try {
interceptBeforeComplete();
} catch (Throwable t) {
appendExceptionToErrorMessage(t);
failed();
}
taskHandler.handleComplete();
}

View File

@ -54,21 +54,19 @@ public class TaskRunner<T extends SharedModel> {
}
protected void next() {
if (!failed && !isCanceled) {
if (tasks.size() > 0) {
try {
currentTask = tasks.poll();
log.trace("Run task: " + currentTask.getSimpleName());
currentTask.getDeclaredConstructor(TaskRunner.class, sharedModel.getClass()).newInstance(this, sharedModel).run();
} catch (Throwable throwable) {
throwable.printStackTrace();
handleErrorMessage("Error at taskRunner: " + throwable.getMessage());
}
}
else {
resultHandler.handleResult();
if (!failed && !isCanceled && tasks.size() > 0) {
try {
currentTask = tasks.poll();
log.trace("Run task: " + currentTask.getSimpleName());
currentTask.getDeclaredConstructor(TaskRunner.class, sharedModel.getClass()).newInstance(this, sharedModel).run();
} catch (Throwable throwable) {
throwable.printStackTrace();
handleErrorMessage("Error at taskRunner: " + throwable.getMessage());
}
}
else {
resultHandler.handleResult();
}
}
public void cancel() {

View File

@ -6,22 +6,26 @@
</encoder>
</appender>
<!--
-->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>bitsquare_out.log</file>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>bitsquare.log</file>
<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>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %xEx%n</pattern>
</encoder>
</appender>
<root level="WARN">
<root level="INFO">
<appender-ref ref="CONSOLE_APPENDER"/>
<!--
<appender-ref ref="FILE"/>
-->
</root>
<logger name="io.bitsquare" level="TRACE"/>
@ -48,7 +52,7 @@
<logger name="org.bitcoinj.core.BitcoinSerializer" level="WARN"/>
<logger name="org.bitcoinj.core.AbstractBlockChain" level="WARN"/>
<logger name="org.bitcoinj.wallet.DeterministicKeyChain" level="WARN"/>
<!-- <logger name="io.bitsquare.btc.WalletService" level="WARN"/>-->
<!-- <logger name="io.bitsquare.btc.WalletService" level="WARN"/>-->
<!--
<logger name="org.bitcoinj.core.Wallet" level="OFF"/>