我最近接到的任务是开始构建一个新的Spring 3 MVC项目(在这方面我是新手)。在开普勒设置了大部分POC项目后,我有:
... 12:46:21.916 [http-apr-8080-exec-5] TRACE o.s.w.s.v.InternalResourceViewResolver - Cached view [home] 12:46:21.916 [http-apr-8080-exec-5] DEBUG o.s.web.servlet.DispatcherServlet - Rendering view [org.springframework.web.servlet.view.JstlView: name 'home'; URL [/WEB-INF/view/home.jsp]] in DispatcherServlet with name 'sample' 12:46:21.916 [http-apr-8080-exec-5] TRACE o.s.web.servlet.view.JstlView - Rendering view with name 'home' with model {name=lingxotika.org} and static attributes {} 12:46:21.916 [http-apr-8080-exec-5] DEBUG o.s.web.servlet.view.JstlView - Added model object 'name' of type [java.lang.String] to request in view with name 'home' 12:46:21.921 [http-apr-8080-exec-5] DEBUG o.s.web.servlet.view.JstlView - Forwarding to resource [/WEB-INF/view/home.jsp] in InternalResourceView 'home' 12:46:21.957 [http-apr-8080-exec-5] TRACE o.s.web.servlet.DispatcherServlet - Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@1bb3db1b 12:46:21.960 [http-apr-8080-exec-5] DEBUG o.s.web.servlet.DispatcherServlet - Successfully completed request 12:46:21.960 [http-apr-8080-exec-5] TRACE o.s.w.c.s.AnnotationConfigWebApplicationContext - Publishing event in WebApplicationContext for namespace 'sample-servlet': ServletRequestHandledEvent: url=[/codetutr/home/]; client=[127.0.0.1]; method=[GET]; servlet=[sample]; session=[0108E781644C1268FD92C11BD78888FB]; user=[null]; time=[87ms]; status=[OK]
Logger
类方法时(我尝试了org.slf4j.Logger
和ch.qos.logback.classic
两种风格),Eclipse无法识别Logger实例中的方法:
package org.lingxotika.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class SampleController {
static final Logger log = LoggerFactory.getLogger(SampleController.class);
log.info("Hit Controller..."); // Error is here
@RequestMapping("home")
public String loadHomePage(Model model) {
model.addAttribute("name", "lingxotika.org");
return "home";
}
}
键入 log
后 Eclipse 代码助手显示以下选项(抱歉,尚无法发布屏幕截图):
new - create new object
nls - non-externalized string marker
runnable - runnable
toarray - convert collection to array
总之,我在这里和这里看到的例子表明,这并不是Spring的局限性,也不是我承认的缺乏能力,而是我忽略的Eclipse问题。我避免发布可能不相关的信息,但我很乐意提供进一步的代码、日志或配置示例。任何帮助都将不胜感激。
似乎您的项目中没有slf4j api jar。
因为它在tomcat中工作,也许tomcat正在使用一个“提供的”jar,即:tomcat应用程序的一部分。
如果您使用的是maven,您需要在pom中拥有以下依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
在我的Java应用程序中,我使用SLF4J+Logback进行日志记录。我在开发环境中使用调试级日志记录,在生产环境中使用错误级日志记录。但是有一些消息我无论如何都想要记录下来,无论日志级别如何(类似于,但使用的是logger)。 有什么切实可行的方法可以实现这一点吗?我可以使用error或更低的级别,但我想做的是给出一些信息,所以在语义上是错误的,它不是错误。 我可以在我的中为我的类定义另一个记
我有以下代码: 在日志中,我只能看到来自BClass而不是AClass的字段: 17:52:28.151[main]INFO Main-Main. BClass(金额=12) 但是我想查看所有BClass字段,包括父类中的字段(标题字段)。我该怎么做?
我在一个类中创建了3个不同的slf4j记录器: 奇怪的是,即使在调试级别配置了X.Y.Z.MyClass,MyClass-a和MyClass-b记录器也不是在调试级别记录日志,而是在配置的根级别记录日志(在我的例子中是info)。如下所示,即使为-a和-b指定特定的记录器也不起作用。在我将根更改为debug之前,它们不会在debug级别进行日志记录。真的被这个难住了,有什么想法吗?
在将quartz scheduler添加到项目中后,Tomcat的服务器日志会被垃圾邮件发送,并显示以下消息: [信息][talledLocalContainer]12:15:06.319[DefaultQuartzScheduler\u QuartzSchedulerThread]调试o.quartz。果心QuartzSchedulerThread-批量获取0个触发器 我正在尝试禁用该日志消息,
我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?
主要内容:Logger日志方法的例子,Logger的日志方法Logger 类有多种方法来处理日志记录活动。Logger 类不允许我们实例化一个新的 Logger 实例,但它支持两种获取 Logger 对象的静态方法: 两个方法中的第一个返回应用程序实例的根记录器,它没有名称。 任何其他命名的 Logger 对象实例都是通过传递记录器的名称由第二种方法获得的。记录器的名称可以是您传递的任何字符串,通常是类或包名称,如下所述: Logger日志方法的例子 Lo