
com.savoirtech.logging.slf4j.json.AbstractJsonLogger Maven / Gradle / Ivy
/*
* Copyright (c) 2016 Savoir Technologies
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*
*/
package com.savoirtech.logging.slf4j.json;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import org.apache.commons.lang3.time.FastDateFormat;
import org.slf4j.MDC;
import java.text.Format;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
public abstract class AbstractJsonLogger implements JsonLogger {
protected org.slf4j.Logger slf4jLogger;
private FastDateFormat formatter;
private Gson gson;
private JsonObject jsonObject;
public AbstractJsonLogger(org.slf4j.Logger slf4jLogger, FastDateFormat formatter, Gson gson) {
this.slf4jLogger = slf4jLogger;
this.formatter = formatter;
this.gson = gson;
jsonObject = new JsonObject();
}
@Override
public JsonLogger message(String message) {
try {
jsonObject.add("message", gson.toJsonTree(message));
}
catch (Exception e) {
jsonObject.add("message", gson.toJsonTree(formatException(e)));
}
return this;
}
@Override
public JsonLogger message(Supplier message) {
try {
jsonObject.add("message", gson.toJsonTree(message.get()));
}
catch (Exception e) {
jsonObject.add("message", gson.toJsonTree(formatException(e)));
}
return this;
}
@Override
public JsonLogger map(String key, Map map) {
try {
jsonObject.add(key, gson.toJsonTree(map));
}
catch (Exception e) {
jsonObject.add(key, gson.toJsonTree(formatException(e)));
}
return this;
}
@Override
public JsonLogger map(String key, Supplier
© 2015 - 2025 Weber Informatics LLC | Privacy Policy