开发者社区> 问答> 正文

sfl4j 如何配置???:配置报错 

maven 依赖已添加 src下也配置了。

public static Logger logger = LoggerFactory.getLogger(Test.class);   运行测试代码还报错。。。。

展开
收起
kun坤 2020-06-02 16:24:59 826 0
1 条回答
写回答
取消 提交回答
  • 我用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######

    引用来自“polly”的评论

    slf4j本身的依赖呢

    maven会自动添加需要的依赖######

    引用来自“polly”的评论

    slf4j本身的依赖呢

    引用来自“jalena”的评论

    maven会自动添加需要的依赖

    有maven就没问题,不过存在缓存问题,你把你本地仓库里对应的slf4j的jar删掉,刷新项目试试。 一般ClassNoDefine是因为,他找到了jar,但是在jar里找不到这个类,最大的可能是jar下载不完整。

    2020-06-02 16:25:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MaxCompute Logview参数详解和问题排查(废弃) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载