Repository: asterixdb Updated Branches: refs/heads/master 81f3e7593 -> 7b0736801
[NO ISSUE] Tracer improvements Log traces to their own log with custom level, as well as make the emitted log work with the chrome tracer without modification Change-Id: I81c158fcd17927d65e7b501345fdbc98001ba86a Reviewed-on: https://asterix-gerrit.ics.uci.edu/3064 Reviewed-by: Ian Maxon <ima...@apache.org> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Ali Alsuliman <ali.al.solai...@gmail.com> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/7b073680 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/7b073680 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/7b073680 Branch: refs/heads/master Commit: 7b073680147ef8e24a51616c7a8be2a8e565124c Parents: 81f3e75 Author: Ian Maxon <ima...@apache.org> Authored: Sun Dec 16 18:46:03 2018 -0800 Committer: Ian Maxon <ima...@apache.org> Committed: Mon Dec 17 10:27:00 2018 -0800 ---------------------------------------------------------------------- .../asterix-app/src/main/resources/log4j2.xml | 11 ++++++++++ .../control/nc/NCLogConfigurationFactory.java | 22 +++++++++++++++----- .../org/apache/hyracks/util/trace/Event.java | 6 +++++- .../org/apache/hyracks/util/trace/Tracer.java | 16 +++++++------- 4 files changed, 41 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/asterixdb/asterix-app/src/main/resources/log4j2.xml ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/main/resources/log4j2.xml b/asterixdb/asterix-app/src/main/resources/log4j2.xml index 2ea8d4a..e54a424 100644 --- a/asterixdb/asterix-app/src/main/resources/log4j2.xml +++ b/asterixdb/asterix-app/src/main/resources/log4j2.xml @@ -19,6 +19,7 @@ <Configuration status="WARN"> <CustomLevels> <CustomLevel name="ACCESS" intLevel="550" /> + <CustomLevel name="TRACER" intLevel="570" /> </CustomLevels> <Appenders> <Console name="Console" target="SYSTEM_OUT"> @@ -27,6 +28,12 @@ <Console name="AccessLog" target="SYSTEM_OUT"> <PatternLayout pattern="%m%n"/> </Console> + <Console name="TracerLog" target="SYSTEM_OUT"> + <PatternLayout pattern="%m%n"/> + </Console> + <File name="TracerLogFile" fileName="target/tracer.log"> + <PatternLayout pattern="%m,%n" header="[" footer="]"/> + </File> </Appenders> <Loggers> <Root level="WARN"> @@ -36,5 +43,9 @@ <Logger name="org.apache.hyracks.http.server.CLFLogger" level="ACCESS" additivity="false"> <AppenderRef ref="AccessLog"/> </Logger> + <Logger name="org.apache.hyracks.util.trace.Tracer.Traces" level="TRACER" additivity="false"> + <AppenderRef ref="TracerLog"/> + <AppenderRef ref="TracerLogFile"/> + </Logger> </Loggers> </Configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java index 41f8e7b..24c3dee 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java @@ -51,10 +51,12 @@ public class NCLogConfigurationFactory extends ConfigurationFactory { ComponentBuilder triggeringPolicy = builder.newComponent("Policies") .addComponent(builder.newComponent("CronTriggeringPolicy").addAttribute("schedule", "0 0 0 * * ?")) .addComponent(builder.newComponent("SizeBasedTriggeringPolicy").addAttribute("size", "50M")); - AppenderComponentBuilder defaultRoll = builder.newAppender("default", "RollingFile") - .addAttribute("fileName", FileUtil.joinPath(logDir, "nc-" + nodeId + ".log")) - .addAttribute("filePattern", FileUtil.joinPath(logDir, "nc-" + nodeId + "-%d{MM-dd-yy}.log.gz")) - .add(defaultLayout).addComponent(triggeringPolicy); + AppenderComponentBuilder defaultRoll = + builder.newAppender("default", "RollingFile") + .addAttribute("fileName", FileUtil.joinPath(logDir, "nc-" + nodeId + ".log")) + .addAttribute("filePattern", + FileUtil.joinPath(logDir, "nc-" + nodeId + "-%d{MM-dd-yy-ss}.log.gz")) + .add(defaultLayout).addComponent(triggeringPolicy); builder.add(defaultRoll); // create the new logger @@ -65,12 +67,22 @@ public class NCLogConfigurationFactory extends ConfigurationFactory { builder.newAppender("access", "RollingFile") .addAttribute("fileName", FileUtil.joinPath(logDir, "access-" + nodeId + ".log")) .addAttribute("filePattern", - FileUtil.joinPath(logDir, "access-" + nodeId + "-%d{MM-dd-yy}.log.gz")) + FileUtil.joinPath(logDir, "access-" + nodeId + "-%d{MM-dd-yy-ss}.log.gz")) .add(accessLayout).addComponent(triggeringPolicy); builder.add(accessRoll); builder.add(builder.newLogger("org.apache.hyracks.http.server.CLFLogger", Level.forName("ACCESS", 550)) .add(builder.newAppenderRef("access")).addAttribute("additivity", false)); + LayoutComponentBuilder traceLayout = builder.newLayout("PatternLayout").addAttribute("pattern", "%m,%n") + .addAttribute("header", "[").addAttribute("footer", "]"); + AppenderComponentBuilder traceRoll = builder.newAppender("trace", "RollingFile") + .addAttribute("fileName", logDir + "trace-" + nodeId + ".log") + .addAttribute("filePattern", logDir + "trace-" + nodeId + "-%d{MM-dd-yy-ss}.log.gz").add(traceLayout) + .addComponent(triggeringPolicy); + builder.add(traceRoll); + builder.add(builder.newLogger("org.apache.hyracks.util.trace.Tracer.Traces", Level.forName("TRACER", 570)) + .add(builder.newAppenderRef("trace")).addAttribute("additivity", false)); + return builder.build(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java index 3edba21..b5fe3d3 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java @@ -77,7 +77,11 @@ final class Event { sb.append(",\"s\":\"").append(scope).append("\""); } if (args != null) { - sb.append(",\"args\":").append(args); + if (args.isEmpty()) { + sb.append(",\"args\":").append("\"\""); + } else { + sb.append(",\"args\":").append(args); + } } sb.append("}"); return sb; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java index 1e8af75..9019fdf 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java @@ -34,20 +34,20 @@ import org.apache.logging.log4j.Logger; */ public class Tracer implements ITracer { - public static final Logger LOGGER = LogManager.getLogger(); + private static final Logger LOGGER = LogManager.getLogger(); - protected static final Level TRACE_LOG_LEVEL = Level.INFO; - protected static final ThreadLocal<DateFormat> DATE_FORMAT = + private static final Level TRACE_LOG_LEVEL = Level.forName("TRACER", 570); + private static final ThreadLocal<DateFormat> DATE_FORMAT = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX")); - protected final Logger traceLog; - protected long categories; - protected TraceCategoryRegistry registry; + private final Logger traceLog; + private long categories; + private final TraceCategoryRegistry registry; - protected static final int pid = PidHelper.getPid(); + private static final int pid = PidHelper.getPid(); public Tracer(String name, long categories, TraceCategoryRegistry registry) { - final String traceLoggerName = Tracer.class.getName() + "@" + name; + final String traceLoggerName = Tracer.class.getName() + ".Traces." + name; LOGGER.info("Initialize Tracer " + traceLoggerName); this.traceLog = LogManager.getLogger(traceLoggerName); this.categories = categories;