Log4j 标签库
Log4j 日志标签库创建了在 JSP 中插入日志语句的功能,而无需使用 Java 脚本。它使用标准 Log4j 2 API 根据您的 Log4j 配置记录消息。
此标签库基于 Joseph Ottinger 和 James Strachan 的 Jakarta Commons 日志标签库。在大多数情况下,针对 Jakarta Commons 日志标签库编写的日志标签也应该适用于此库。但是,Jakarta 中的“category”属性在此库中已变为“logger”属性。
要求
Log4j 标签库至少需要 Servlet 2.5(或 Java EE 5),至少需要 JSP 2.1(或 Java EE 5),并且依赖于 Log4j 2 API。有关更多信息,请参阅 运行时依赖。
重要提示! 出于性能原因,容器通常会忽略已知不包含 TLD 的某些 JAR,并且不会扫描它们以查找 TLD 文件。重要的是,Tomcat 7 <7.0.43 会忽略所有名为 log4j*.jar 的 JAR 文件,这会阻止 JSP 标签库被自动发现。这不会影响 Tomcat 6.x,并且已在 Tomcat 7.0.43、Tomcat 8 及更高版本中修复。在 Tomcat 7 <7.0.43 中,您需要更改 catalina.properties
并从 jarsToSkip
属性中删除“log4j*.jar”。如果您在其他容器上跳过扫描 Log4j JAR 文件,则可能需要执行类似的操作。
使用
根据 Logger API,此标签库具有标签来支持以下日志调用:“catching”、“entry”、“exit”、“log”、“trace”、“debug”、“info”、“warn”、“error”和“fatal”。Jakarta Commons 日志标签库不支持“trace”标签。“setLogger”、“catching”、“entry”和“trace”标签是此库的新增功能。此标签库还支持条件标签“ifEnabled”(新)和故障排除标签“dump”(存在于 Jakarta Commons 日志标签库中)。
默认情况下,此标签库为每个 JSP 使用一个不同的 Logger,该 Logger 以 JSP ID 命名。您可以在任何日志标签或“ifEnabled”标签中使用“logger”属性自定义 Logger。您还可以使用“setLogger”标签指定应在 JSP 的其余执行过程中应用的 Logger。如果“setLogger”标签出现在 JSP 中的任何其他日志标签之前,则不会为该 JSP 创建默认 Logger,而是指定的记录器是唯一将使用的记录器。
我们尽一切努力优化这些标签并确保良好的性能,但此库的用户应该记住,创建和执行 JSP 标签会给标准 Log4j 方法调用增加大量开销。虽然此库中提供了“trace”、“debug”和“info”选项,但它们的使用与用户可能习惯的标准 Log4j 方法调用关闭时的日志记录速度并不快。因此,应谨慎使用它们。使用“ifEnabled”标签不会提高此性能;此标签可用于有条件地评估除日志记录操作之外的其他操作。