问题标签 [tomcat-juli]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
686 浏览

tomcat - 在 Tomcat JULI 中,“设施特定”记录器是否成为每个 webapp 记录器的根?

我可以期待“嗨!”的日志条目吗?将发射到${catalina.base}/logs/webapp.log?

Tomcat 配置

{$CATALINA_BASE}/conf/logger.properties

Webapp 级别的日志记录配置

WEB-INF/classes/logger.propertiesWAR 部署到/webapp

代码中的用法

WAR 中的代码部署到/webapp

0 投票
1 回答
1353 浏览

java - Tomcat中tomcat-juli.jar的多个实例

环境:Windows 2003 32 位(我知道,我知道我们正在迁移到 64 位,但很快)

  • 阿帕奇雄猫
  • 6.0.35
  • JAVA_HOME
  • CATALINA_HOME

已配置

转到 Tomcat6w.exe 的 Java 选项卡,我们看到:

为什么有不止一个实例:tomcat-juli.jar?

了解Juli是:Java Utility Logging Implementation

我的问题是,即使定义了一个 juli .. 为什么有两个?我们是否只是将其保持在 2 并让系统正常运行?

0 投票
3 回答
13311 浏览

java - linux中的tomcat:java.lang.NoClassDefFoundError:org/apache/juli/logging/LogFactory

当我在linux中启动tomcat时,我遇到了一个问题。 Using CLASSPATH:/data/apache-tomcat-7.0.47/bin/bootstrap.jar:/data/apache-tomcat-7.0.47/bin/tomcat-juli.jar

我知道找不到该类,但该 jar 已在类路径中。所以为什么?如果您能回答我的问题,我将不胜感激。谢谢。

0 投票
1 回答
2329 浏览

tomcat - ClassCircularityError: java/util/logging/LogRecord 使用 JavaMelody 和 Tomcat 插件运行 Gradle webapp

当我尝试使用Gradle Tomcat 插件的嵌入式容器启动我的应用程序时,我得到了下面的堆栈跟踪。

当我使用外部 Tomcat 时不会发生这种情况,所以我希望它与 Gradle 的类路径和 Gradle 的内置依赖项有关(我什至不知道如何找出它们是什么)。我已经摸索了一下,人们似乎在某种程度上与 SLF4J 和/或 Logback有类似的问题,我的项目都没有使用它们。我曾尝试使用SLF4J 遗留网桥解决它,但无济于事——可能是因为我在我build.gradle的文件中声明了它们,而那时为时已晚(Gradle 本身已经拉入/配置了 SLF4J)。

从理论上讲,似乎也可以禁用 JULI 并使 Tomcat 登录到 log4j,这似乎有可能解决问题,但说明都与手动替换 and 中的 JAR 有关$CATALINA_HOME/bin$CATALINA_HOME/lib而我没有第一个想法是如何在 Gradle 上下文中实现这一点。

有任何想法吗?

0 投票
3 回答
4259 浏览

eclipse - Tomcat 8 无法启动

我已经搜索了很多,但找不到答案。我刚刚升级了 STS(从 3.2 开始),所以我可以试用 Tomcat 8(从 7.0.53 开始)。我有 STS 3.6.2 和 Tomcat 8.0.15。添加 TC8 服务器并对其进行配置后,它拒绝启动,并出现以下根错误:

java.lang.ClassNotFoundException: org.apache.juli.WebappProperties

所以我读了很多,发现这个指南从通过 Juli 的硬编码公共日志切换到 Log4J 并按照它没有任何运气。相关摘录:

Apache Tomcat 的内部日志记录使用 JULI,它是 Apache Commons Logging 的打包重命名分支,默认情况下,它被硬编码为使用 java.util.logging 框架。这确保了 Tomcat 的内部日志记录和任何 Web 应用程序日志记录将保持独立,即使 Web 应用程序使用 Apache Commons Logging。

要将 Tomcat 配置为对其内部日志记录使用替代日志记录框架,必须将硬编码以使用 java.util.logging 的 JULI 实现替换为保留完整 Commons Logging 发现机制的 JULI 实现。这种实现是作为附加组件提供的。可以在下面找到有关如何配置 Tomcat 以使用 Log4j 框架进行内部日志记录的说明。

我还从这里找到了这个答案(对一个不同的问题)和这个问题,后者似乎有一个几乎相同的问题,没有任何解决方案。

我在我的 Tomcat 的 bin/lib 文件夹中搜索了所有 JAR,但没有找到这样的类(包括各种版本的tomcat-juli.jartomcat-juli-adapters.jar)。除了前面链接的 Tomcat 8 Logging 指南外,我在 Internet 上几乎找不到任何关于此类/接口的参考。那么,问题来了:Tomcat为什么要找这个类?

再次来自链接指南,它是这样说的:

如果使用实现 org.apache.juli.WebappProperties接口的类加载器(Tomcat 的 Web 应用程序类加载器),那么也会对 执行属性替换 ${classloader.webappName}${classloader.hostName}${classloader.serviceName}分别替换为 Web 应用程序名称、主机名和服务名称。

为什么我的 Tomcat 类加载器实际上没有实现它,或者它为什么没有找到它?

0 投票
1 回答
2013 浏览

tomcat - Tomcat 服务器日志在文件名中有日期 - rotatable=false 不起作用

我在同一台 Redhat 5 机器上运行了两个 tomcat 6 安装 - 一个是“我的”,一个属于我组织的另一个组。我的目前是6.0.35,另一个是6.0.32。我在为 tomcat 日志生成的文件名最终以日期结尾时遇到问题,这破坏了我们的日志轮换,所以我在这里搜索并发现设置

1catalina.org.apache.juli.FileHandler.rotatable

属性为 false 删除了日期,根据此处的文档:

https://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/juli/FileHandler.html

欢呼; 问题解决了。所以我检查了其他安装是否有同样的问题;是的,他们让我帮助他们解决它。由于他们的 logging.properties 设置与我们的完全相同(全部基于 ${catalina.base}),我只是复制了新的、固定的 logging.properties 文件,该文件适用于我们的安装,并修复了权限。但由于某种原因,它在这里不起作用。

我可以从正在运行的进程的命令行参数确认两者都使用相同的 logging.manager (org.apache.juli.ClassLoaderLogManager),并且第二次安装使用了正确的 logging.properties 配置文件。我什至可以更改该文件中的其他属性(例如前缀、后缀)并重新启动服务器以查看它们在使用的文件名中生效。但无论出于何种原因,第二次安装似乎忽略了 rotatable=false 属性,并拒绝生成名称中没有日期的日志文件。这是我正在使用的 logging.properties 文件:

如果有人有任何建议 - 也许其他可以覆盖 logging.properties 文件的位置?- 我一定会很感激的。

谢谢,

0 投票
4 回答
20792 浏览

tomcat - 带有 log4j2.xml 的 tomcat 7 内部日志记录

我正在尝试使用log4j2. 我遵循了Logging server classes in Tomcat 6 with log4j2 中提供的答案。

我正在使用 tomcat 7.0.54 和log4j-core-2.1.jar, log4j-api-2.1.jar。我已经下载了附加组件并执行了以下所有步骤,但是当我启动 tomcat 时,出现错误:

这些是我执行的步骤:

  • 放入log4j2.xml_$CATALINA_BASE/lib
  • 下载tomcat-juli.jartomcat-juli-adapters.jar从“附加”
  • log4j-api-2.1.jar, log4j-core-2.1.jar, log4j-jul-2.1.jar, 和tomcat-juli-adapters.jarfrom "extras" 放入$CATALINA_HOME/lib.
  • 替换$CATALINA_HOME/bin/tomcat-juli.jartomcat-juli.jar“附加”。
  • 删除$CATALINA_BASE/conf/logging.properties
  • 将日志管理器设置为使用log4j2-jul桥 ( log4j-jul-2.1.jar) 中的管理器。更改catalina.sh以确保类路径包含bin/tomcat-juli.jar、和lib/log4j-jul-2.1.jar,并且用于启动 tomcat 的命令包含 -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`lib/log4j-api-2.1.jarlib/log4j-core-2.1.jar

我什至尝试添加这个(LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_HOME/lib/log4j2.xml"catalina.sh但没有奏效。

请让我知道是否有人可以成功配置它。

0 投票
1 回答
1633 浏览

tomcat - 如何将 Jenkins 与现代日志框架一起使用?

Jenkins 默认使用 Java Utils Logging。这是一个有点过时的日志框架,缺乏现代日志框架(如 Log4J 或 Logback)的许多功能。

如何使用 Logback 或 Log4J 在 Tomcat 上部署/配置 Jenkins?

0 投票
3 回答
14581 浏览

java - jetty-maven-plugin 和 tomcat-jdbc 8.0.9+ 之间的类路径问题导致 ServiceConfigurationError

我正在使用以下应用程序开发:

jetty-maven-plugin:9.3.2.v20150730
tomcat-jdbc:8.0.8 (它有 tomcat-juli 作为依赖项)

尝试将 tomcat-jdbc jar 升级到 8.0.9+ 之后的任何版本后,我收到以下错误:

java.util.ServiceConfigurationError: org.apache.juli.logging.Log: 提供者 org.eclipse.jetty.apache.jsp.JuliLog 不是子类型

查看这两个版本之间的变更日志,我发现了一些可疑的东西:

“在 JULI LogFactory 中添加一个简单的基于 ServiceLoader 的发现机制,以便更容易独立于 Tomcat 使用依赖于 JULI(如 Jasper)的 JULI 和 Tomcat 组件。补丁由 Greg Wilkins 提供。(markt)”

另外,我发现 Apache Tomcat JDBC 连接池中引入了一个新的系统属性:

org.apache.tomcat.jdbc.pool.onlyAttemptCurrentClassLoader

"控制动态类的类加载,例如 JDBC 驱动程序、拦截器和验证器。如果设置为 false,默认值,池将首先尝试使用当前加载器(即加载池类的类加载器)进行加载,如果类加载尝试使用线程上下文加载器加载失败。将此值设置为 true,如果您希望保持与 Apache Tomcat 8.0.8 及更早版本的向后兼容,并且仅尝试当前加载器。如果未设置,则默认值为 false。

不幸的是,使用该属性使用 jetty:run 启动插件并不能解决问题。

任何帮助,将不胜感激!谢谢!

堆栈跟踪和依赖树:

0 投票
0 回答
737 浏览

file - 巨力 tomcat 7 logging.properties

我有一个包含 CustomLoginModule 的 jar 来执行 JAAS 授权。这个罐子位于${CATALINA_BASE}/lib. 我有一个org.apache.juli.logging.Log对象可以在不同级别的模块中执行日志记录。我想要一个日志文件,例如jaas.log写入模块日志的地方,而不是将它们放在Catalina.outorcatalina.log中。这是我的logging.properties文件,使用此配置,我可以创建它,jaas.log但它保持为空,所有日志都转到了Catalina.outcatalina.log有人可以帮忙吗?非常感谢。

logging.properties文件: