Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions SilKit/source/config/YamlParser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
#include "YamlWriter.hpp"
#include "rapidyaml.hpp"

//rapidyaml pulls in some windows nonsense
#ifdef GetCurrentTime
#undef GetCurrentTime
#endif

namespace VSilKit {

Expand Down
9 changes: 9 additions & 0 deletions SilKit/source/config/YamlWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -630,4 +630,13 @@ void YamlWriter::Write(const SilKitRegistry::Config::V1::RegistryConfiguration&
NonDefaultWrite(obj.experimental, "Experimental", defaultObject.experimental);
}

void YamlWriter::Write(const SilKit::Services::Flexray::FlexrayControllerConfig& obj)
{
// Parse parameters as an int value; uint8_t would be interpreted as a character
MakeMap();
WriteKeyValue("clusterParams", obj.clusterParams);
WriteKeyValue("nodeParams", obj.nodeParams);
OptionalWrite(obj.bufferConfigs, "bufferConfigs");
}

} // namespace VSilKit
3 changes: 3 additions & 0 deletions SilKit/source/config/YamlWriter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,9 @@ struct YamlWriter : BasicYamlWriter<YamlWriter>
void Write(const SilKit::Config::HealthCheck& obj);
void Write(const SilKitRegistry::Config::V1::Experimental& obj);
void Write(const SilKitRegistry::Config::V1::RegistryConfiguration& obj);

// used for debug logging
void Write(const SilKit::Services::Flexray::FlexrayControllerConfig& obj);
};

} // namespace VSilKit
6 changes: 3 additions & 3 deletions SilKit/source/core/internal/ServiceDescriptor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class ServiceDescriptor
inline bool operator==(const ServiceDescriptor& rhs) const;
inline bool operator!=(const ServiceDescriptor& rhs) const;
inline std::string to_string() const;
inline std::vector<std::pair<std::string, std::string>> to_keyValues() const;
inline std::vector<std::pair<std::string_view, std::string>> to_keyValues() const;

inline Core::EndpointAddress to_endpointAddress() const;

Expand Down Expand Up @@ -291,11 +291,11 @@ std::string ServiceDescriptor::to_string() const
}


std::vector<std::pair<std::string, std::string>> ServiceDescriptor::to_keyValues() const
std::vector<std::pair<std::string_view, std::string>> ServiceDescriptor::to_keyValues() const
{
namespace Keys = SilKit::Services::Logging::Keys;

std::vector<std::pair<std::string, std::string>> kv;
std::vector<std::pair<std::string_view, std::string>> kv;
std::string controllerTypeName;
std::stringstream ss;

Expand Down
14 changes: 12 additions & 2 deletions SilKit/source/services/logging/Logger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,18 @@ std::string KeyValuesToJsonString(const std::vector<std::pair<std::string, std::
{
result.append(",");
}
result.append("\"" + SilKit::Util::EscapeString(it->first) + "\"" + ":" + "\""
+ SilKit::Util::EscapeString(it->second) + "\"");


if(it->first == SilKit::Services::Logging::Keys::raw)
{
result.append("\"" + SilKit::Util::EscapeString(it->first) + "\"" + ":"
+ it->second);
}
else
{
result.append("\"" + SilKit::Util::EscapeString(it->first) + "\"" + ":" + "\""
+ SilKit::Util::EscapeString(it->second) + "\"");
}
++it;
}
result.append("}");
Expand Down
22 changes: 19 additions & 3 deletions SilKit/source/services/logging/MessageTracing.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include "ServiceDescriptor.hpp"
#include "traits/SilKitMsgTraits.hpp"

#include "YamlParser.hpp"


namespace SilKit {
namespace Services {
Expand All @@ -29,8 +31,6 @@ std::chrono::nanoseconds GetTimestamp(MsgT& /*msg*/,
}




template <class SilKitMessageT>
void TraceRx(Logging::ILoggerInternal* logger, const Core::IServiceEndpoint* addr, const SilKitMessageT& msg,
const Core::ServiceDescriptor& from)
Expand All @@ -48,7 +48,12 @@ void TraceRx(Logging::ILoggerInternal* logger, const Core::IServiceEndpoint* add
{
lm.FormatKeyValue(Logging::Keys::virtualTimeNS, "{}", virtualTimeStamp.count());
}
lm.Dispatch();
if constexpr ( std::is_same_v<SilKitMessageT, SilKit::Services::Flexray::FlexrayControllerConfig>)
{
lm.SetKeyValue(Logging::Keys::raw, SilKit::Config::SerializeAsJson(msg));
}

lm.Dispatch();
}
}

Expand All @@ -67,6 +72,11 @@ void TraceTx(Logging::ILoggerInternal* logger, const Core::IServiceEndpoint* add
{
lm.FormatKeyValue(Logging::Keys::virtualTimeNS, "{}", virtualTimeStamp.count());
}

if constexpr ( std::is_same_v<SilKitMessageT, SilKit::Services::Flexray::FlexrayControllerConfig>)
{
lm.SetKeyValue(Logging::Keys::raw, SilKit::Config::SerializeAsJson(msg));
}
lm.Dispatch();
}
}
Expand All @@ -88,6 +98,12 @@ void TraceTx(Logging::ILoggerInternal* logger, const Core::IServiceEndpoint* add
{
lm.FormatKeyValue(Logging::Keys::virtualTimeNS, "{}", virtualTimeStamp.count());
}

if constexpr ( std::is_same_v<SilKitMessageT, SilKit::Services::Flexray::FlexrayControllerConfig>)
{
lm.SetKeyValue(Logging::Keys::raw, SilKit::Config::SerializeAsJson(msg));
}

lm.Dispatch();
}
}
Expand Down
1 change: 0 additions & 1 deletion SilKit/source/services/logging/SilKitFmtFormatters.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
#include "TestDataTypes.hpp" // for operator<<
#include "IServiceEndpoint.hpp" // for operator<<(... ServiceDescriptor)


#define MAKE_FORMATTER(TYPE) \
template <> \
struct fmt::formatter<TYPE> : ostream_formatter \
Expand Down
61 changes: 31 additions & 30 deletions SilKit/source/services/logging/StructuredLoggingKeys.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,38 @@ namespace Services {
namespace Logging {
namespace Keys {

const std::string virtualTimeNS{"VirtualTimeNS"};
const std::string msg{"Msg"};
const std::string from{"From"};
constexpr std::string_view virtualTimeNS{"VirtualTimeNS"};
constexpr std::string_view msg{"Msg"};
constexpr std::string_view from{"From"};
constexpr std::string_view to{"To"};

const std::string waitingTime{"WaitingTime"};
const std::string executionTime{"ExecutionTime"};

const std::string participantName{"ParticipantName"};
const std::string registryUri{"RegistryUri"};
const std::string silKitVersion{"SilKitVersion"};

const std::string newParticipantState{"NewParticipantState"};
const std::string oldParticipantState{"OldParticipantState"};
const std::string enterTime{"EnterTime"};
const std::string enterReason{"EnterReason"};

const std::string serviceType{"ServiceType"};
const std::string serviceName{"ServiceName"};
const std::string networkType{"NetworkType"};
const std::string networkName{"NetworkName"};
const std::string controllerTypeName{"ControllerTypeName"};


const std::string controllerName{"ControllerName"};
const std::string controllerType{"ControllerType"};
const std::string pubSubTopic{"PubSubTopic"};
const std::string controllerFuncName{"ControllerFuncName"};
const std::string mediaType{"MediaType"};
const std::string network{"Network"};
const std::string label{"Label"};
constexpr std::string_view raw{"Raw"};

constexpr std::string_view waitingTime{"WaitingTime"};
constexpr std::string_view executionTime{"ExecutionTime"};

constexpr std::string_view participantName{"ParticipantName"};
constexpr std::string_view registryUri{"RegistryUri"};
constexpr std::string_view silKitVersion{"SilKitVersion"};

constexpr std::string_view newParticipantState{"NewParticipantState"};
constexpr std::string_view oldParticipantState{"OldParticipantState"};
constexpr std::string_view enterTime{"EnterTime"};
constexpr std::string_view enterReason{"EnterReason"};

constexpr std::string_view serviceType{"ServiceType"};
constexpr std::string_view serviceName{"ServiceName"};
constexpr std::string_view networkType{"NetworkType"};
constexpr std::string_view networkName{"NetworkName"};
constexpr std::string_view controllerTypeName{"ControllerTypeName"};


constexpr std::string_view controllerName{"ControllerName"};
constexpr std::string_view controllerType{"ControllerType"};
constexpr std::string_view pubSubTopic{"PubSubTopic"};
constexpr std::string_view controllerFuncName{"ControllerFuncName"};
constexpr std::string_view mediaType{"MediaType"};
constexpr std::string_view network{"Network"};
constexpr std::string_view label{"Label"};


} // namespace Keys
Expand Down
Loading