我有一个maven项目,在命令行没有问题的情况下构建.但是,当我使用IntelliJ构建它时,我收到错误:
java: FileName.java:89: cannot find symbol
symbol : variable log
Run Code Online (Sandbox Code Playgroud)
java文件中没有定义或导入日志,但有一个
@Slf4j
final public class FileName {
Run Code Online (Sandbox Code Playgroud)
应该定义日志类的类体之前的语句.
在项目结构窗口中,类为:
Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
Run Code Online (Sandbox Code Playgroud)
列在库下,表示已下载并可用.
知道为什么这会通过命令行与maven一起构建,而不是通过IntelliJ以及如何解决问题?
我在 glassfish 3.1.2 服务器上运行的 Java EJB 项目中使用 org.slf4j.Logger。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class main {
private static final Logger LOGGER = LoggerFactory.getLogger(main.class);
public static void main(String[] args) {
LOGGER.info("--- show this everytime");
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("--- show this only if debug is enable");
}
LOGGER.info("--- show this everytime");
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我不知道如何打开/关闭不同的日志级别(信息、调试、错误、跟踪、警告)。我阅读了有关创建配置文件或 xml 文件的信息,但我不知道将这些文件放在 EJB 项目中的何处。有没有办法像这样配置它?
LOGGER.setLevel("info");
Run Code Online (Sandbox Code Playgroud)