我正在使用 Azure Web 应用程序,并尝试调试我在 Tomcat 容器内的 Java 应用程序。
当我使用 Visual Studio 或 FTP 或 Kudo 转到“日志文件”文件夹时,我只看到以下内容
- 本地主机
- 卡特琳娜
- 房东经理
我没有看到标准输出。我的应用程序中的许多行都使用 System.out.println()
(在此阶段我不打算将它们全部替换为 Logger)
如何查看标准输出? 我尝试在 App Service Logs 中添加尽可能多的日志,但这没有帮助。
最佳答案
我在 Azure 门户上使用 Java 和 Tomcat 配置了我的 WebApp,如下图所示。
所以在Kudu控制台路径D:\Program Files (x86)\apache-tomcat-9.0.14\下可以找到Tomcat 9.0.14的
如下图。logging.properties
文件conf
可以看到使用了Tomcat的默认日志记录,所以System.out.println
的这些控制台输出不会写入到D:\home\LogFiles\的这些日志文件中应用
.
不过,我尝试在D:\home\site\wwwroot\webapps\ROOT\
的index.jsp
中写了一些代码如下。
<%@ 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. ");
%>
然后,我可以看到只有日志记录级别warning
和info
的日志被写入D:\home\LogFiles\Application\catalina.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。 2019-08-19.log
,如下图,因为日志级别优先级为SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST
。
由于 File System Restrictions/Considerations
Azure WebApp,除D:\home
外,其他路径不能写。
所以如果你想将一些日志写入文件,请使用 java.util.logging.Logger
而不是 System.out
,或者使用其他日志框架像 log4j
或 slf4j
。
希望对您有所帮助。
关于azure - 来自 Azure 的 Tomcat Web App 中的位置标准输出日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57545794/