Skip to content
Snippets Groups Projects
Commit 5c9c32bc authored by Philipp Spilger's avatar Philipp Spilger
Browse files

Remove global static log4cxx::LoggerPtr

* destruction order determines whether global static works or
  segfaults

Change-Id: Ic3c97070bb3703fdf14bf2921106619fc3bee6b3
parent be09114e
No related branches found
No related tags found
No related merge requests found
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "halco/common/iter_all.h" #include "halco/common/iter_all.h"
#include "hate/type_index.h" #include "hate/type_index.h"
static log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
std::string const hwdb4cpp::database::default_path = "/wang/data/bss-hwdb/db.yaml"; std::string const hwdb4cpp::database::default_path = "/wang/data/bss-hwdb/db.yaml";
using namespace halco::common; using namespace halco::common;
...@@ -94,6 +93,7 @@ T get_entry(const Node& node, const std::string name) try { ...@@ -94,6 +93,7 @@ T get_entry(const Node& node, const std::string name) try {
return key.as<T>(); return key.as<T>();
} }
} catch (const YAML::Exception& err) { } catch (const YAML::Exception& err) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR( LOG4CXX_ERROR(
logger, "Error converting node YAML'" << node << "' to type '" << hate::full_name<T>() logger, "Error converting node YAML'" << node << "' to type '" << hate::full_name<T>()
<< "': " << err.what()); << "': " << err.what());
...@@ -176,6 +176,7 @@ struct convert<ADCYAML> ...@@ -176,6 +176,7 @@ struct convert<ADCYAML>
static bool decode(const Node& node, ADCYAML& data) static bool decode(const Node& node, ADCYAML& data)
{ {
if (!node.IsMap() || node.size() > 8) { if (!node.IsMap() || node.size() > 8) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''"); LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''");
return false; return false;
} }
...@@ -207,6 +208,7 @@ struct convert<FPGAYAML> ...@@ -207,6 +208,7 @@ struct convert<FPGAYAML>
static bool decode(const Node& node, FPGAYAML& data) static bool decode(const Node& node, FPGAYAML& data)
{ {
if (!node.IsMap() || node.size() > 3) { if (!node.IsMap() || node.size() > 3) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''"); LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''");
return false; return false;
} }
...@@ -245,6 +247,7 @@ struct convert<HXFPGAYAML> ...@@ -245,6 +247,7 @@ struct convert<HXFPGAYAML>
static bool decode(const Node& node, HXFPGAYAML& data) static bool decode(const Node& node, HXFPGAYAML& data)
{ {
if (!node.IsMap() || node.size() > 8) { if (!node.IsMap() || node.size() > 8) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''"); LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''");
return false; return false;
} }
...@@ -264,6 +267,7 @@ struct convert<HXFPGAYAML> ...@@ -264,6 +267,7 @@ struct convert<HXFPGAYAML>
auto eeprom = node["eeprom_chip_serial"]; auto eeprom = node["eeprom_chip_serial"];
if (ldo.IsDefined() || hand_serial.IsDefined() || chip_rev.IsDefined()) { if (ldo.IsDefined() || hand_serial.IsDefined() || chip_rev.IsDefined()) {
if (!ldo.IsDefined() || !hand_serial.IsDefined() || !chip_rev.IsDefined()) { if (!ldo.IsDefined() || !hand_serial.IsDefined() || !chip_rev.IsDefined()) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR( LOG4CXX_ERROR(
logger, "Decoding failed. LDO, hand serial and chip revision all need to be " logger, "Decoding failed. LDO, hand serial and chip revision all need to be "
"defined. Node: '''\n" "defined. Node: '''\n"
...@@ -280,6 +284,7 @@ struct convert<HXFPGAYAML> ...@@ -280,6 +284,7 @@ struct convert<HXFPGAYAML>
data.wing = wing; data.wing = wing;
} else { } else {
if (eeprom.IsDefined() || fuse_dna.IsDefined() || extoll_node_id.IsDefined()) { if (eeprom.IsDefined() || fuse_dna.IsDefined() || extoll_node_id.IsDefined()) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR( LOG4CXX_ERROR(
logger, "Decoding failed. Only optional entries found. Node: '''\n" logger, "Decoding failed. Only optional entries found. Node: '''\n"
<< node << "'''"); << node << "'''");
...@@ -306,6 +311,7 @@ struct convert<ReticleYAML> ...@@ -306,6 +311,7 @@ struct convert<ReticleYAML>
static bool decode(const Node& node, ReticleYAML& data) static bool decode(const Node& node, ReticleYAML& data)
{ {
if (!node.IsMap() || node.size() > 2) { if (!node.IsMap() || node.size() > 2) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''"); LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''");
return false; return false;
} }
...@@ -331,6 +337,7 @@ struct convert<AnanasYAML> ...@@ -331,6 +337,7 @@ struct convert<AnanasYAML>
static bool decode(const Node& node, AnanasYAML& data) static bool decode(const Node& node, AnanasYAML& data)
{ {
if (!node.IsMap() || node.size() > 4) { if (!node.IsMap() || node.size() > 4) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''"); LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''");
return false; return false;
} }
...@@ -359,6 +366,7 @@ struct convert<HICANNYAML> ...@@ -359,6 +366,7 @@ struct convert<HICANNYAML>
static bool decode(const Node& node, HICANNYAML& data) static bool decode(const Node& node, HICANNYAML& data)
{ {
if (!node.IsMap() || node.size() > 3) { if (!node.IsMap() || node.size() > 3) {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''"); LOG4CXX_ERROR(logger, "Decoding failed of: '''\n" << node << "'''");
return false; return false;
} }
...@@ -565,6 +573,7 @@ void database::load(std::string const path) ...@@ -565,6 +573,7 @@ void database::load(std::string const path)
} }
// yaml node does not contain wafer or dls setup or hxcube setup // yaml node does not contain wafer or dls setup or hxcube setup
else { else {
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("hwdb4cpp");
LOG4CXX_WARN(logger, "Found node entry neither from Wafer, DLS setup nor HX setup, ignore"); LOG4CXX_WARN(logger, "Found node entry neither from Wafer, DLS setup nor HX setup, ignore");
} }
} }
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment