当前位置: 首页 > 知识库问答 >
问题:

从Azure定位Tomcat Web App中的std-out日志

解柏
2023-03-14

我正在使用Azure Web应用程序,并试图调试Tomcat容器中的Java应用程序。

当我使用VisualStudio、FTP或Kudo转到“日志文件”文件夹时,我只看到以下内容

  1. 本地主机

我看不出来。我的应用程序中的许多行使用系统。出来println()(在这个阶段,我不打算用记录器来取代它们)

我怎样才能看出来?我尝试在应用程序服务日志中添加尽可能多的日志,但这没有帮助。

共有1个答案

齐志勇
2023-03-14

我在Azure门户上配置了Java和Tomcat的WebApp,如下图所示。

因此,您可以找到日志记录。属性Tomcat 9.0.14的文件,路径为Kudu控制台D:\Program Files(x86)\apache-Tomcat-9.0.14\conf,如下图所示。

您可以看到使用了Tomcat的默认日志记录,因此这些控制台输出的System.out.println不会写入这些日志文件的D:\home\LogFiles\Application

但是,我尝试在索引中编写一些代码,如下所示。jspD:\home\site\wwwroot\webapps\ROOT\

<%@ page import="java.util.logging.*" %>

<%
    Logger logger = Logger.getLogger("Hello");
    out.println("Hello, world from webapps/ROOT/index.jsp on Tomcat on cloud.<br>");
    System.out.println("System.out >> Hello, world from webapps/ROOT/index.jsp on Tomcat on cloud.");
    logger.warning("Logger Level Warning >> Hello, world from webapps/ROOT/index.jsp on Tomcat on cloud. ");
    logger.info("Logger Level Info >> Hello, world from webapps/ROOT/index.jsp on Tomcat on cloud. ");
    logger.fine("Logger Level Fine >> Hello, world from webapps/ROOT/index.jsp on Tomcat on cloud. ");
%>

然后,我可以看到只有日志级别警告info的日志被写入D:\home\LogFiles\Application\catalina.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.2019-08-19.log,如下图所示,因为日志级别优先级是SEVERE

由于Azure WebApp的文件系统限制/注意事项,除了D:\home,您不能在其他路径中执行写入操作。

因此,如果您想将一些日志写入文件,请使用java。util。登录中。记录器而不是系统。out,或使用其他日志框架,如log4jslf4j

希望有帮助。

 类似资料:
  • 需要debezium从bin log中的特定位置读取。有可能吗?若有,如何指明? Debezium快照模式为:initial、when_needed、Never。我们希望将快照模式保持为never,并从指定的bin日志位置开始读取。

  • 我有一个AKS(Azure Kubernetes)集群,它有几个不同的名称空间。在其中一个,我有许多不同的吊舱,每个只运行一个容器。 Azure收集数据并将其输入日志分析。 我想停止将这些日志摄入日志分析,甚至完全禁用它们(当然,我更喜欢将它们保存在pod本身)。 我只能找到一种方法来禁用整个名称空间来收集日志,但我只需要禁用这个特定的pod(它是从部署/复制集创建的)。

  • 我们正在用dotnet 5 v3进程外函数替换一些现有的v1函数,但DI存在问题。 考虑ASP Dotnet Core Web Api也使用的以下现有服务(存储库模式),我们需要在V3函数中使用它: 程序。V3函数中的cs如下: 函数构造函数: 不清楚,我找不到任何详细说明如何将遥测客户端传递到注册服务的文档…这是运行函数时的错误。 例外:系统。InvalidOperationException:

  • 我需要一些帮助在Azure中记录Java应用: 1) 使用Azure作为PaaS,我创建了一个配置为使用Java8 Tomcat8的API应用程序。我正试图使用log4j2将应用程序日志记录与Tomcat日志(在一个单独的文件中)分开。据我所知,我有权限在D:\home中的任何地方写入。因此,我将尝试写入“d:\home\Logfiles\Application\”。因此,我创建了一个带有log4

  • 我可以点击并打开日期选择弹出日历,但无法从中选择一个特定的日期。由于输入字段是只读的,因此通过或给出的输入不被接受为有效输入。

  • 刚接触C语言的我,正试图了解initializer\u list。 我正在制作一个Matrix类,它有效地存储了一个双值的二维数组。我没有在结构层面上得到这个项目。就像好吧,我们制作了一个Matrix类,它本质上存储了一个2D数据数组。但是它需要能够存储任何大小的数组,所以它必须使用动态分配的数组。但是std::array是不允许的。 我不知道如何访问i_list中的项目。如果它们像 然后根据我看