Small fixes. (#206)
* Logging format tweaks for file logging Signed-off-by: AlexDBlack <blacka101@gmail.com> * Min abs error tweak for Util layer gradient checks Signed-off-by: AlexDBlack <blacka101@gmail.com> * #8648 Fix SameDiff NPE instead of error for missing placeholders Signed-off-by: AlexDBlack <blacka101@gmail.com> * Test runtime reduction Signed-off-by: AlexDBlack <blacka101@gmail.com>master
parent
d52e67209e
commit
0756e3fe70
|
@ -43,12 +43,6 @@ import java.util.Random;
|
||||||
|
|
||||||
public class CapsnetGradientCheckTest extends BaseDL4JTest {
|
public class CapsnetGradientCheckTest extends BaseDL4JTest {
|
||||||
|
|
||||||
private static final boolean PRINT_RESULTS = true;
|
|
||||||
private static final boolean RETURN_ON_FIRST_FAILURE = false;
|
|
||||||
private static final double DEFAULT_EPS = 1e-6;
|
|
||||||
private static final double DEFAULT_MAX_REL_ERROR = 1e-3;
|
|
||||||
private static final double DEFAULT_MIN_ABS_ERROR = 1e-8;
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCapsNet() {
|
public void testCapsNet() {
|
||||||
|
|
||||||
|
|
|
@ -43,10 +43,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
public class OutputLayerGradientChecks extends BaseDL4JTest {
|
public class OutputLayerGradientChecks extends BaseDL4JTest {
|
||||||
|
|
||||||
private static final boolean PRINT_RESULTS = true;
|
private static final boolean PRINT_RESULTS = true;
|
||||||
private static final boolean RETURN_ON_FIRST_FAILURE = false;
|
|
||||||
private static final double DEFAULT_EPS = 1e-6;
|
|
||||||
private static final double DEFAULT_MAX_REL_ERROR = 1e-3;
|
|
||||||
private static final double DEFAULT_MIN_ABS_ERROR = 1e-8;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Nd4j.setDataType(DataType.DOUBLE);
|
Nd4j.setDataType(DataType.DOUBLE);
|
||||||
|
|
|
@ -47,10 +47,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
public class RnnGradientChecks extends BaseDL4JTest {
|
public class RnnGradientChecks extends BaseDL4JTest {
|
||||||
|
|
||||||
private static final boolean PRINT_RESULTS = true;
|
private static final boolean PRINT_RESULTS = true;
|
||||||
private static final boolean RETURN_ON_FIRST_FAILURE = false;
|
|
||||||
private static final double DEFAULT_EPS = 1e-6;
|
|
||||||
private static final double DEFAULT_MAX_REL_ERROR = 1e-3;
|
|
||||||
private static final double DEFAULT_MIN_ABS_ERROR = 1e-8;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Nd4j.setDataType(DataType.DOUBLE);
|
Nd4j.setDataType(DataType.DOUBLE);
|
||||||
|
|
|
@ -48,12 +48,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public class UtilLayerGradientChecks extends BaseDL4JTest {
|
public class UtilLayerGradientChecks extends BaseDL4JTest {
|
||||||
|
|
||||||
private static final boolean PRINT_RESULTS = true;
|
|
||||||
private static final boolean RETURN_ON_FIRST_FAILURE = false;
|
|
||||||
private static final double DEFAULT_EPS = 1e-6;
|
|
||||||
private static final double DEFAULT_MAX_REL_ERROR = 1e-3;
|
|
||||||
private static final double DEFAULT_MIN_ABS_ERROR = 1e-6;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Nd4j.setDataType(DataType.DOUBLE);
|
Nd4j.setDataType(DataType.DOUBLE);
|
||||||
}
|
}
|
||||||
|
@ -182,9 +176,9 @@ public class UtilLayerGradientChecks extends BaseDL4JTest {
|
||||||
MultiLayerNetwork net = new MultiLayerNetwork(conf);
|
MultiLayerNetwork net = new MultiLayerNetwork(conf);
|
||||||
net.init();
|
net.init();
|
||||||
|
|
||||||
boolean gradOK = GradientCheckUtil.checkGradients(new GradientCheckUtil.MLNConfig().net(net).input(input)
|
boolean gradOK = GradientCheckUtil.checkGradients(new GradientCheckUtil.MLNConfig().net(net)
|
||||||
.minAbsoluteError(1e-7)
|
.minAbsoluteError(1e-6)
|
||||||
.labels(label).inputMask(inMask));
|
.input(input).labels(label).inputMask(inMask));
|
||||||
assertTrue(gradOK);
|
assertTrue(gradOK);
|
||||||
|
|
||||||
TestUtils.testModelSerialization(net);
|
TestUtils.testModelSerialization(net);
|
||||||
|
@ -233,8 +227,9 @@ public class UtilLayerGradientChecks extends BaseDL4JTest {
|
||||||
//Test ComputationGraph equivalent:
|
//Test ComputationGraph equivalent:
|
||||||
ComputationGraph g = net.toComputationGraph();
|
ComputationGraph g = net.toComputationGraph();
|
||||||
|
|
||||||
boolean gradOKCG = GradientCheckUtil.checkGradients(new GradientCheckUtil.GraphConfig().net(g).inputs(new INDArray[]{in})
|
boolean gradOKCG = GradientCheckUtil.checkGradients(new GradientCheckUtil.GraphConfig().net(g)
|
||||||
.labels(new INDArray[]{labels}).excludeParams(excludeParams));
|
.minAbsoluteError(1e-6)
|
||||||
|
.inputs(new INDArray[]{in}).labels(new INDArray[]{labels}).excludeParams(excludeParams));
|
||||||
assertTrue(gradOKCG);
|
assertTrue(gradOKCG);
|
||||||
|
|
||||||
TestUtils.testModelSerialization(g);
|
TestUtils.testModelSerialization(g);
|
||||||
|
|
|
@ -56,11 +56,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
* @author Alex Black
|
* @author Alex Black
|
||||||
*/
|
*/
|
||||||
public class YoloGradientCheckTests extends BaseDL4JTest {
|
public class YoloGradientCheckTests extends BaseDL4JTest {
|
||||||
private static final boolean PRINT_RESULTS = true;
|
|
||||||
private static final boolean RETURN_ON_FIRST_FAILURE = false;
|
|
||||||
private static final double DEFAULT_EPS = 1e-6;
|
|
||||||
private static final double DEFAULT_MAX_REL_ERROR = 1e-3;
|
|
||||||
private static final double DEFAULT_MIN_ABS_ERROR = 1e-8;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Nd4j.setDataType(DataType.DOUBLE);
|
Nd4j.setDataType(DataType.DOUBLE);
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.nd4j.autodiff.samediff.SDVariable;
|
||||||
import org.nd4j.autodiff.samediff.SameDiff;
|
import org.nd4j.autodiff.samediff.SameDiff;
|
||||||
import org.nd4j.autodiff.samediff.VariableType;
|
import org.nd4j.autodiff.samediff.VariableType;
|
||||||
import org.nd4j.base.Preconditions;
|
import org.nd4j.base.Preconditions;
|
||||||
|
import org.nd4j.linalg.api.ndarray.INDArray;
|
||||||
import org.nd4j.linalg.api.ops.impl.controlflow.compat.*;
|
import org.nd4j.linalg.api.ops.impl.controlflow.compat.*;
|
||||||
import org.nd4j.linalg.dataset.api.MultiDataSet;
|
import org.nd4j.linalg.dataset.api.MultiDataSet;
|
||||||
import org.nd4j.linalg.function.Predicate;
|
import org.nd4j.linalg.function.Predicate;
|
||||||
|
@ -295,9 +296,13 @@ public abstract class AbstractSession<T, O> {
|
||||||
}
|
}
|
||||||
} else if (es.getType() == ExecType.PLACEHOLDER) {
|
} else if (es.getType() == ExecType.PLACEHOLDER) {
|
||||||
VarId vid = new VarId(es.getName(), OUTER_FRAME, 0, null);
|
VarId vid = new VarId(es.getName(), OUTER_FRAME, 0, null);
|
||||||
nodeOutputs.put(vid, placeholderValues.get(es.getName()));
|
T phVal = placeholderValues == null ? null : placeholderValues.get(es.getName());
|
||||||
|
|
||||||
|
nodeOutputs.put(vid, phVal);
|
||||||
outFrameIter = new FrameIter(OUTER_FRAME, 0, null);
|
outFrameIter = new FrameIter(OUTER_FRAME, 0, null);
|
||||||
if (allRequired.contains(es.getName())) {
|
if (allRequired.contains(es.getName())) {
|
||||||
|
Preconditions.checkState(placeholderValues != null && placeholderValues.containsKey(es.getName()),
|
||||||
|
"No array was provided for the placeholder variable \"%s\" that is required for execution", es.getName());
|
||||||
//User requested placeholder value as one of the outputs
|
//User requested placeholder value as one of the outputs
|
||||||
out.put(es.getName(), placeholderValues.get(es.getName()));
|
out.put(es.getName(), placeholderValues.get(es.getName()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
import org.nd4j.OpValidationSuite;
|
import org.nd4j.OpValidationSuite;
|
||||||
|
import org.nd4j.autodiff.loss.LossReduce;
|
||||||
import org.nd4j.autodiff.samediff.api.OutAndGrad;
|
import org.nd4j.autodiff.samediff.api.OutAndGrad;
|
||||||
import org.nd4j.autodiff.validation.OpValidation;
|
import org.nd4j.autodiff.validation.OpValidation;
|
||||||
import org.nd4j.autodiff.validation.TestCase;
|
import org.nd4j.autodiff.validation.TestCase;
|
||||||
|
@ -3528,4 +3529,27 @@ public class SameDiffTests extends BaseNd4jTest {
|
||||||
String s = out.toString();
|
String s = out.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMissingPlaceholderError(){
|
||||||
|
|
||||||
|
SameDiff sd = SameDiff.create();
|
||||||
|
|
||||||
|
int nOut = 4;
|
||||||
|
int minibatch = 10;
|
||||||
|
SDVariable predictions = sd.var("in", DataType.DOUBLE, minibatch, nOut);
|
||||||
|
SDVariable labels = sd.placeHolder("labels", DataType.DOUBLE, -1, nOut);
|
||||||
|
|
||||||
|
LossReduce reduction = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT;
|
||||||
|
|
||||||
|
SDVariable loss = sd.loss().absoluteDifference("loss", labels, predictions, null, reduction);
|
||||||
|
|
||||||
|
try {
|
||||||
|
loss.eval();
|
||||||
|
fail("Exception should have been thrown");
|
||||||
|
} catch (IllegalStateException e){
|
||||||
|
String msg = e.getMessage();
|
||||||
|
assertTrue(msg, msg.contains("\"labels\"") && msg.contains("No array was provided"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6935,9 +6935,9 @@ public class Nd4jTestsC extends BaseNd4jTest {
|
||||||
val arrayY = Nd4j.create(128, 128, 'f');
|
val arrayY = Nd4j.create(128, 128, 'f');
|
||||||
val arrayZ = Nd4j.create(128, 128, 'f');
|
val arrayZ = Nd4j.create(128, 128, 'f');
|
||||||
|
|
||||||
int iterations = 10000;
|
int iterations = 100;
|
||||||
// warmup
|
// warmup
|
||||||
for (int e = 0; e < 1000; e++)
|
for (int e = 0; e < 10; e++)
|
||||||
arrayX.addi(arrayY);
|
arrayX.addi(arrayY);
|
||||||
|
|
||||||
for (int e = 0; e < iterations; e++) {
|
for (int e = 0; e < iterations; e++) {
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||||
<file>logs/application.log</file>
|
<file>logs/application.log</file>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date - [%level] - from %logger in %thread
|
<pattern> %logger{15} - %message%n%xException{5}
|
||||||
%n%message%n%xException%n</pattern>
|
</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue