You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2020/09/18 04:01:56 UTC
[incubator-nlpcraft] branch master updated: Improved logging for
test framework (ANSI colored JSON).
This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/master by this push:
new 180d0b4 Improved logging for test framework (ANSI colored JSON).
180d0b4 is described below
commit 180d0b401f2e67d37e52c33637f276c079122f72
Author: Aaron Radzinski <ar...@datalingvo.com>
AuthorDate: Thu Sep 17 21:01:43 2020 -0700
Improved logging for test framework (ANSI colored JSON).
---
.../org/apache/nlpcraft/common/util/NCUtils.scala | 35 +++++++++++++++++++++-
.../model/intent/impl/NCIntentSolverEngine.scala | 2 +-
.../model/tools/test/NCTestClientBuilder.java | 13 ++++++--
.../org/apache/nlpcraft/probe/NCProbeBoot.scala | 2 +-
.../probe/mgrs/nlp/NCProbeEnrichmentManager.scala | 4 +--
5 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 52fd154..13e00e2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -1385,7 +1385,7 @@ object NCUtils extends LazyLogging {
if (fileName == null || lineNum < 0)
errMsg
else
- s"$errMsg ${ansiCyanFg}->$ansiReset ($fileName:$lineNum)"
+ s"$errMsg $ansiCyanFg->$ansiReset ($fileName:$lineNum)"
msg.split("\n").foreach(line ⇒ {
val s = s"${" " * indent}${if (first) s"$ansiRedFg+- $ansiReset" else " "}${line.trim}"
@@ -1414,6 +1414,39 @@ object NCUtils extends LazyLogging {
/**
+ * ANSI color JSON string.
+ *
+ * @param json JSON string to color.
+ * @return
+ */
+ def colorJson(json: String): String = {
+ val buf = mutable.Buffer.empty[String]
+
+ var inQuotes = false
+ var isValue = false
+
+ for (ch ← json) {
+ ch match {
+ case ':' ⇒ buf += s"$ansiGreenFg:$ansiReset"; isValue = true
+ case '[' | ']' | '{' | '}' | ',' ⇒ buf += s"$ansiBold$ansiYellowFg$ch$ansiReset"
+ case '"' ⇒ inQuotes = !inQuotes; buf += s"$ansiBlueFg$ch$ansiReset"
+ case _ ⇒
+ if (inQuotes && isValue)
+ buf += s"$ansiGreenFg$ch$ansiReset"
+ else if (inQuotes && !isValue)
+ buf += s"$ansiCyanFg$ch$ansiReset"
+ else
+ buf += s"$ch"
+ }
+
+ if (ch == ',' && !inQuotes)
+ isValue = false
+ }
+
+ buf.mkString
+ }
+
+ /**
* Unzips file.
*
* @param zipFile Zip file.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
index ac29a95..c6e3e51 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/impl/NCIntentSolverEngine.scala
@@ -276,7 +276,7 @@ object NCIntentSolverEngine extends LazyLogging with NCOpenCensusTrace {
)
})
- tbl.info(logger, Some(s"Found matching intents (sorted from ${ansiRedFg}best$ansiReset to worst match):"))
+ tbl.info(logger, Some(s"Found matching intents (sorted ${ansiRedFg}best$ansiReset to worst):"))
}
else
logger.info("No matching intent found.")
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java
index 81b78e8..0458d1d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestClientBuilder.java
@@ -32,6 +32,7 @@ import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
+import org.apache.nlpcraft.common.util.NCUtils;
import org.jsoup.Jsoup;
import org.apache.nlpcraft.model.tools.embedded.NCEmbeddedProbe;
import org.apache.nlpcraft.model.tools.embedded.NCEmbeddedResult;
@@ -655,8 +656,14 @@ public class NCTestClientBuilder {
assert res.getResultType().isPresent() && res.getResult().isPresent();
if (respLog) {
- log.info("'ask' request '{}' answered successfully with '{}' result:\n{}", txt,
- res.getResultType().get(), mkPrettyString(res.getResultType().get(), res.getResult().get()));
+ log.info("'ask' request '{}' answered successfully with '{}' result:\n{}",
+ txt,
+ res.getResultType().get(),
+ mkPrettyString(
+ res.getResultType().get(),
+ res.getResult().get()
+ )
+ );
}
}
else {
@@ -684,7 +691,7 @@ public class NCTestClientBuilder {
case "text":
case "yaml":
case "json": // JSON already configured for pretty printing.
- return body;
+ return NCUtils.colorJson(body);
default: return body;
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index 15d1f83..eafed56 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -362,7 +362,7 @@ private [probe] object NCProbeBoot extends LazyLogging with NCOpenCensusTrace {
val ver = NCVersion.getCurrent
- tbl += (s"${ansiBlueFg}Probe ID$ansiReset", s"$ansiReversed${cfg.id}$ansiReset")
+ tbl += (s"${ansiBlueFg}Probe ID$ansiReset", s"$ansiBold${cfg.id}$ansiReset")
tbl += (s"${ansiBlueFg}Probe Token$ansiReset", cfg.token)
tbl += (s"${ansiBlueFg}API Version$ansiReset", ver.version + ", " + ver.date.toString)
tbl += (s"${ansiBlueFg}Down-Link$ansiReset", cfg.downLinkString)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index 4dce63f..52630b8 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -230,7 +230,7 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
val tbl = NCAsciiTable()
- tbl += (s"${ansiBlueFg}Text$ansiReset", nlpSens.map(_.text))
+ tbl += (s"${ansiBlueFg}Text$ansiReset", nlpSens.map(s ⇒ s"$ansiBold$ansiGreenFg${s.text}$ansiReset"))
tbl += (s"${ansiBlueFg}Model ID$ansiReset", mdlId)
tbl += (s"${ansiBlueFg}User ID$ansiReset", usrId)
tbl += (s"$ansiBlueFg First Name$ansiReset", senMeta.getOrElse("FIRST_NAME", ""))
@@ -542,7 +542,7 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
NCTokenLogger.prepareTable(sen.asScala).
info(
logger,
- Some(s"Parsing variant #${i + 1} for: '$txt'")
+ Some(s"Parsing variant #${i + 1} of ${senVars.size} (sorted best to worst) for: '$txt'")
)
}
}