maven 依赖已添加
src下也配置了。
public static Logger logger = LoggerFactory.getLogger(Test.class);
运行测试代码还报错。。。。
我用logback+slf4j,slf4j无需配置,只需配置logback就可以了
######哎,还是没说到重点,没法解决问题######mvn的包代码发出来看看撒。
######MVN只需要导入这个就可以了
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.9.1</version>
</dependency>
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="off" status="INFO"> <!-- 这个status是控制系统信息的输出级别 -->
<Properties>
<Property name="path">${log4j:configParentLocation}/../../logs</Property>
<Property name="pattern" value="%d{DEFAULT} [%-5level] %c{1.}.%M()/%L - %msg%xEx%n"/>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT"> <!-- 将日志信息从控制台输出 -->
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="%highlight{${pattern}}" />
</Console>
<File name="debug" fileName="${path}/log.log" append="true"> <!-- 将日志信息写入日志文件 -->
<Filters>
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout pattern="${pattern}" />
</File>
<RollingFile name="warn" fileName="${path}/warn.log" filePattern="${path}/warn-%d{yyyy-MM-dd}_%i.log">
<PatternLayout pattern="${pattern}" />
<SizeBasedTriggeringPolicy size="50MB" />
<Filters>
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="TestWebService" level="TRACE"/>
<Root level="debug">
<AppenderRef ref="Console" /> <!-- 仅有上述的Appenders配置还不够,这里还不能少,少了就不会在控制台输出 -->
<AppenderRef ref="warn" />
<AppenderRef ref="debug" /> <!-- 仅有上述的Appenders配置还不够,这里还不能少,少了就不会写入文件,但会创建文件 -->
</Root>
</Loggers>
</configuration>
测试代码
import fnklAxiService.FnklAxiServiceServiceLocator;
import fnklAxiService.FnklAxiService_PortType;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.rpc.ServiceException;
import java.rmi.RemoteException;
/**
* @author Jalena
* @version 1.0
*/
public class TestWebService {
private final Logger logger = LoggerFactory.getLogger(getClass());
private FnklAxiService_PortType service;
@Before
public void before() {
FnklAxiServiceServiceLocator locator = new FnklAxiServiceServiceLocator();
try {
service = locator.getfnklAxiService();
} catch (ServiceException e) {
logger.warn(e.getCause().getMessage());
}
}
@Test
public void selectRacks() throws ServiceException, RemoteException {
String s = service.selectRacks("3181804100059#100");
logger.info(s);
}
}
######slf4j本身的依赖呢######
从来都不是依赖和配置的问题,是你运行代码的classpath没设好,所以才报noclassdefound
######maven会自动添加需要的依赖
######maven会自动添加需要的依赖
有maven就没问题,不过存在缓存问题,你把你本地仓库里对应的slf4j的jar删掉,刷新项目试试。
一般ClassNoDefine是因为,他找到了jar,但是在jar里找不到这个类,最大的可能是jar下载不完整。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。