我有java代码:
final URI myUri = new URIBuilder()
.setScheme(azkabanHostProtocol)
.setHost(azkabanHost + ":" + azkabanPort)
.setPath("/executor")
.setParameter("execid", executionID).build();
logger.info(myUri.toString());
我想以url / html链接的形式将myURI显示到Azkaban的日志中,这样点击它就会打开它。我正在使用log4j进行日志记录。
答案 0 :(得分:0)
您可以创建自己的扩展HTMLLayout的布局类。
然后覆盖format
方法以满足您的需求。
实际实现包含以下几行,您可能需要替换它们:
sbuf.append(Transform.escapeTags(event.getRenderedMessage()));
请参阅消息字符串中的所有标记,默认情况下将被转义。
您的版本可能基于某种标记,例如String mark = "[LINK]";
if(event.getRenderedMessage().startsWith(mark)){
String uri = event.getRenderedMessage().substring(mark.length());
String link = "<a href=\"" + uri + "\">" + uri + "</a>";
sbuf.append(link);
}
else
sbuf.append(Transform.escapeTags(event.getRenderedMessage()));
你可以用这种方式调用记录器:
logger.info(mark + myUri.toString());
以下主题将帮助您使用自定义HTMLLayout:how to change htmllayout in log4j2
以下是默认HTMLLayout的源代码,作为初学者。
答案 1 :(得分:0)
如何查看Azkaban日志文件?如果它们只是使用vanilla文本编辑器查看的原始文本文件,那么就无法完成您想要的任何操作。如果您在更智能的UI中查看它们,则需要根据UI所需的格式对它们进行格式化。
简而言之,您的问题的答案完全由您用于查看日志的任何工具驱动。