Skip to content
Snippets Groups Projects
Commit e4e02c11 authored by Gwenaelle ABEILLE's avatar Gwenaelle ABEILLE
Browse files

add logging configuration. ignore start archiving errors in state

parent f0046369
No related branches found
No related tags found
No related merge requests found
......@@ -347,8 +347,8 @@ public abstract class BooleanScalar extends HdbCollector implements IBooleanScal
setLastValue(scalarEvent, scalarEvent.getReadValue());
} catch (final Exception e) {
registerErrorMessage(attributeName, e);
final String message = "Problem storing BooleanScalar value";
logger.error(message, e);
logger.error("error storing attribute {}, {}",attributeName, e.getMessage());
logger.error("Problem storing value", e);
try_number--;
if (try_number > 0) {
......
......@@ -413,8 +413,8 @@ public abstract class NumberScalar extends HdbCollector implements INumberScalar
}
} catch (final Exception e) {
registerErrorMessage(attributeName, e.getMessage());
final String message = "Problem storing NumberScalar value";
logger.error(message, e);
logger.error("error storing attribute {}, {}",attributeName, e.getMessage());
logger.error("Problem storing value", e);
try_number--;
if (try_number > 0) {
......
......@@ -300,8 +300,8 @@ public abstract class StateScalar extends HdbCollector implements IDevStateScala
setLastValue(scalarEvent, scalarEvent.getReadValue());
} catch (final Exception e) {
final String message = "Problem storing StateScalar value";
logger.error(message, e);
logger.error("error storing attribute {}, {}",attributeName, e.getMessage());
logger.error("Problem storing value", e);
try_number--;
if (try_number > 0) {
......
......@@ -305,8 +305,8 @@ public abstract class StringScalar extends HdbCollector implements IStringScalar
e.printStackTrace();
System.out.println(e.getMessage());
registerErrorMessage(attributeName, e.getMessage());
final String message = "Problem storing StringScalar value";
logger.error(message);
logger.error("error storing attribute {}, {}",attributeName, e.getMessage());
logger.error("Problem storing value", e);
try_number--;
if (try_number > 0) {
......
......@@ -16,9 +16,13 @@ import fr.soleil.database.connection.DataBaseParameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tango.DeviceState;
import org.tango.logging.LoggingLevel;
import org.tango.logging.LoggingManager;
import org.tango.server.ServerManager;
import org.tango.server.annotation.*;
import org.tango.server.attribute.log.LogAttribute;
import org.tango.server.device.DeviceManager;
import org.tango.server.dynamic.DynamicManager;
import org.tango.utils.DevFailedUtils;
import java.sql.Timestamp;
......@@ -42,7 +46,6 @@ public class HdbArchiver {
public boolean isUseEvents = false;
@DeviceProperty
private String dbType;
......@@ -117,8 +120,8 @@ public class HdbArchiver {
* Defines whether the archiver will log to a diary. <b>Default value :
* </b>false
*/
// @DeviceProperty
//private boolean hasDiary;
@DeviceProperty
private boolean hasDiary;
/**
* The criticity threshold of the archiver's logging. Only messages with a
* criticity higher than this attribute will be logged to the diary.
......@@ -132,14 +135,16 @@ public class HdbArchiver {
* </UL>
* <b>Default value : </b>DEBUG
*/
//@DeviceProperty
//private String diaryLogLevel;
@DeviceProperty
private String diaryLogLevel;
/**
* The path of the diary logs. Don't include a filename, diary files are
* named automatically.
*/
//@DeviceProperty
//private String diaryPath;
@DeviceProperty
private String diaryPath;
/**
......@@ -164,6 +169,10 @@ public class HdbArchiver {
private DeviceManager deviceManager;
@DynamicManagement
private DynamicManager dynMngt;
private String deviceName;
private static String VERSION;
......@@ -197,6 +206,8 @@ public class HdbArchiver {
// =========================================================
@Init(lazyLoading = true)
public void init() throws DevFailed, ArchivingException {
logger = LoggerFactory.getLogger(HdbArchiver.class.getCanonicalName() + "- " + deviceName);
dynMngt.addAttribute(new LogAttribute(1000, logger));
logger.info("init in");
collectorFactory = new HdbCollectorFactory(logger);
imageCharge = 0;
......@@ -207,13 +218,19 @@ public class HdbArchiver {
StringBuilder builder = new StringBuilder();
builder.append("isDedicated = ").append(isDedicated).append('\n');
builder.append("reservedAttributes = ").append(Arrays.toString(reservedAttributes)).append('\n');
logger.info("isDedicated = {}", isDedicated);
logger.info("reservedAttributes = {}", Arrays.toString(reservedAttributes));
// builder.append("diaryPath = ").append(diaryPath).append('\n');
//builder.append("hasDiary = ").append(hasDiary).append('\n');
//builder.append("diaryLogLevel = ").append(diaryLogLevel);
logger.info(builder.toString());
// TODO circuit breaker to retry whenever the db goes down
try {
if (hasDiary) {
LoggingManager.getInstance().addFileAppender(diaryPath, deviceName);
LoggingManager.getInstance().setLoggingLevel(deviceName, LoggingLevel.getLevelFromString(diaryLogLevel).toInt());
}
} catch (DevFailed e) {
logger.error("failed to configure logging {}", DevFailedUtils.toString(e));
}
connectDatabase();
state = DeviceState.ON;
logger.info("init device OK");
......@@ -243,6 +260,7 @@ public class HdbArchiver {
archivingMessConfig.add(attributeLightMode);
}
triggerArchiving(archivingMessConfig.toArray(), false);
}
}
logger.debug("archiving started");
......@@ -417,21 +435,21 @@ public class HdbArchiver {
}
okAttributes.add(attCompleteName.toLowerCase());
koAttributes.remove(attCompleteName.toLowerCase());
logger.debug("OK: " + attCompleteName);
logger.debug("start {} OK ", attCompleteName);
} catch (final ArchivingException e) {
try {
collectorFactory.remove(attCompleteName);
} catch (final ArchivingException e1) {
}
e.printStackTrace();
final String message = GlobalConst.ARCHIVING_ERROR_PREFIX + " : ";
archivingException.addStack(message, e);
logger.error("start failed", e);
String name = attCompleteName.toLowerCase();
koAttributes.add(name);
okAttributes.remove(name);
collectorFactory.registerError(attCompleteName, e);
logger.error("KO: " + attCompleteName);
e.printStackTrace();
logger.error("error", e.getMessage());
logger.error("attribute {} is KO ", attCompleteName);
} catch (final Exception e) {
try {
collectorFactory.remove(attCompleteName);
......@@ -442,15 +460,16 @@ public class HdbArchiver {
okAttributes.remove(name);
e.printStackTrace();
collectorFactory.registerError(attCompleteName, e);
logger.error("KO " + attCompleteName + " unexpected " + e);
logger.error("KO ", e);
}
}
computeLoads();
if (!archivingException.getMessage().equals("")) {
// ignore error start device anyway
/* if (!archivingException.getMessage().equals("")) {
logger.error("trigger_archive_conf ERROR - out");
throw archivingException.toTangoException();
}
}*/
logger.debug("trigger_archive_conf - out");
}
......@@ -943,4 +962,20 @@ public class HdbArchiver {
this.dbType = dbType;
}
public void setDynMngt(DynamicManager dynMngt) {
this.dynMngt = dynMngt;
}
public void setDiaryPath(String diaryPath) {
this.diaryPath = diaryPath;
}
public void setDiaryLogLevel(String diaryLogLevel) {
this.diaryLogLevel = diaryLogLevel;
}
public void setHasDiary(boolean hasDiary) {
this.hasDiary = hasDiary;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment