public static void Log(this ILogMessageSink sink, LogLevel level, Exception ex, string message, params object[] args) { sink.Write(new LogMessage(level, message, args) { Exception = ex }); }
public DecoratingLogMessageSink(ILogMessageSink inner, Func<LogMessage, LogMessage> decorator) { if (inner == null) throw new ArgumentNullException("inner"); if (decorator == null) throw new ArgumentNullException("decorator"); _inner = inner; _decorator = decorator; }
private void ApplyPatch(ILogMessageSink logger, IPolicyPatch patch, JArray policySet) { List <JObject> patchPolicies = patch.GetPolicies().ToList(); if (patch.OverrideDeltaMode == OverrideDeltaMode.Replace) { ApplyReplacePatch(logger, patch, patchPolicies, policySet); } else if (patch.OverrideDeltaMode == OverrideDeltaMode.AssignProperties) { ApplyAssignPatch(logger, patch, patchPolicies, policySet); } }
public ConfigPatcher( IInitConfig initConfig, IEnvironementDescription environmentDescription, IPatchingTemplateProvider templateProvider, JsonTransformationEngine transformationEngine, ILogMessageSink logMessageSink) { _initConfig = initConfig; _environmentDescription = environmentDescription; _templateProvider = templateProvider; _transformationEngine = transformationEngine; _logMessageSink = logMessageSink; }
public DecoratingLogMessageSink(ILogMessageSink inner, Func <LogMessage, LogMessage> decorator) { if (inner == null) { throw new ArgumentNullException("inner"); } if (decorator == null) { throw new ArgumentNullException("decorator"); } _inner = inner; _decorator = decorator; }
public bool TryHandle(ITransformationContext transformationContext, JToken makro, string[] makroArguments) { if (makroArguments.Length != 2 || makroArguments[0] != "PATCH") { return(false); } JArray array = (JArray)makro.Parent; int index = array.IndexOf(makro); array.RemoveAt(index); string extensionToken = makroArguments[1]; IIncludeContext includeContext = transformationContext.GetPluginPolicy <IIncludeContext>(); ILogMessageSink logger = transformationContext.GetPluginPolicy <ILogMessageSink>(); IEnumerable <(IPolicyPatch, IEnumerable <JObject>)> basePatches = _patchCollector .GetBasePatches(transformationContext, includeContext, $"{extensionToken}.json") .Select(p => (p, p.GetPolicies())); foreach ((IPolicyPatch, IEnumerable <JObject>)patch in basePatches) { foreach (JObject policy in patch.Item2) { string sourceTerm = CreateSourceTerm(policy, patch.Item1.PatchSourcePath, "Base"); AppendPatchSource(policy, sourceTerm); logger.Message(sourceTerm); array.Insert(index, policy); index++; } } IEnumerable <IPolicyPatch> targetedPatches = _patchCollector .GetTargetedPatches(transformationContext, includeContext, $"{extensionToken}.json"); foreach (IPolicyPatch policy in targetedPatches) { ApplyPatch(logger, policy, array); } return(true); }
private void ApplyAssignPatch(ILogMessageSink logger, IPolicyPatch policyPatch, List <JObject> patchPolicies, JArray policySet) { foreach (JObject patchPolicy in patchPolicies) { JObject patchTarget = FindPatchTarget(policyPatch, policySet); string sourceTerm = CreateSourceTerm(patchPolicy, policyPatch.PatchSourcePath, "Assign"); if (patchTarget == null) { logger.Warning( $"Patch {sourceTerm} was not applied because a matching base patch was not found."); continue; } if (policyPatch.PatchTargetQuery != null) { patchTarget = (JObject)patchTarget.SelectToken(policyPatch.PatchTargetQuery); if (patchTarget == null) { logger.Warning( $"Patch {sourceTerm} was not applied because a matching base patch target {policyPatch.PatchTargetQuery} was not found."); continue; } } foreach (JProperty patchProperty in patchPolicy.Properties()) { if (patchProperty.Name.StartsWith("§")) { continue; } patchTarget[patchProperty.Name] = patchProperty.Value; } AppendPatchSource(patchTarget, sourceTerm); logger.Message($"{sourceTerm}\n\twhere {JsonConvert.SerializeObject(policyPatch.Conditions)}"); } }
private void ApplyReplacePatch(ILogMessageSink logger, IPolicyPatch policyPatch, List <JObject> patchPolicies, JArray policySet) { foreach (JObject patchPolicy in patchPolicies) { JObject originalObject = FindPatchTarget(policyPatch, policySet); string sourceTerm = CreateSourceTerm(patchPolicy, policyPatch.PatchSourcePath, "Replace"); if (originalObject == null) { logger.Warning( $"Patch {sourceTerm} was not applied because a matching base patch was not found."); continue; } int index = policySet.IndexOf(originalObject); policySet.RemoveAt(index); policySet.Insert(index, patchPolicy); logger.Message($"{sourceTerm}\n\twhere {JsonConvert.SerializeObject(policyPatch.Conditions)}"); } }
public DeferredLogMessageSink(ILogMessageSink inner) { _inner = inner; }
public BlockSink(ILogMessageSink logMessageSink) { _logMessageSink = logMessageSink; }