我有一个项目,我使用:
我需要记录请求和响应。为了实现它,我将 LoggingFilter 添加到我的web.xml
:
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)
我在 Eclipse 中运行项目并在 Eclipse 控制台看到日志记录。
现在,我想使用 Logback 编写日志文件并使用自定义附加程序,所以我添加到我的pom.xml
:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.13</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
要将所有 JUL 日志记录路由到 SLF4J API,我使用 org.slf4j.bridge.SLF4JBridgeHandler
我尝试通过创建src/main/resources/logging.properties
内容来安装 SLF4JBridgeHandler :
handlers = org.slf4j.bridge.SLF4JBridgeHandler
Run Code Online (Sandbox Code Playgroud)
正如它在这里提到的,没有发生任何事情。
如果我使用另一种方法(程序安装),一切正常。
为什么它不适用于logging.properties
配置?我错过了什么?
我想测试应用程序切片,但有一个我想排除的包,因为它与这些测试根本不相关。
我试图以这种方式排除该包:
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = MyController.class,
excludeFilters = {@ComponentScan.Filter(
type = FilterType.REGEX, pattern = "com.foo.bar.*")})
public class MyControllerTest {
// ... list of test methods goes here ...
}
Run Code Online (Sandbox Code Playgroud)
无论如何,该包中的类都包含在上下文中。如何修复它?
我用这个主要组件React + Material-UI + react-router开发了一个应用程序.这是我的全部package.json
:
{
"name": "trader-ui",
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^3.2.0",
"@material-ui/icons": "^3.0.1",
"@stomp/stompjs": "^5.0.0",
"axios": "^0.18.0",
"classnames": "^2.2.6",
"prop-types": "^15.6.2",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-router-dom": "^4.3.1",
"react-scripts": "2.0.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"proxy": "http://localhost:8080"
}
Run Code Online (Sandbox Code Playgroud)
它在开发服务器上工作得很好:
$ npm start
Run Code Online (Sandbox Code Playgroud)
这里是:
但是,当我尝试提供生产构建时:
$ …
Run Code Online (Sandbox Code Playgroud) 此问题与缺少版本信息问题无关.
我创建后修改tzdata2016g.tar.gz
(如描述在这里),我试图更新时区:
$ sudo java -jar tzupdater.jar -v -l file:///tmp/tzupdater-2.1.0/tzdata2016g.tar.gz
Run Code Online (Sandbox Code Playgroud)
但我有一个例外.上面命令的输出如下:
Using file:///tmp/tzupdater-2.1.0/tzdata2016g.tar.gz as source for tzdata bundle.
java.home: /usr/lib/jvm/java-8-oracle/jre
java.vendor: Oracle Corporation
java.version: 1.8.0_101
tzupdater version 2.1.0-b04
JRE tzdata version: tzdata2016d
Downloaded file to /tmp/tz.tmp/tzdata.tar.gz
java.io.FileNotFoundException: /tmp/tz.tmp/tzdata2016g/northamerica (Not a directory)
Exception in thread "main" com.sun.tools.tzupdater.TzRuntimeException: java.io.FileNotFoundException: /tmp/tz.tmp/tzdata2016g/northamerica (Not a directory)
at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:662)
Caused by: java.io.FileNotFoundException: /tmp/tz.tmp/tzdata2016g/northamerica (Not a directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at com.sun.tools.tzupdater.ExternalModule.extractFiles(ExternalModule.java:103)
at com.sun.tools.tzupdater.TimezoneUpdater.run(TimezoneUpdater.java:209)
at …
Run Code Online (Sandbox Code Playgroud) java ×4
spring-boot ×2
javascript ×1
jersey ×1
jersey-1.0 ×1
jul-to-slf4j ×1
logback ×1
material-ui ×1
react-router ×1
reactjs ×1
spring ×1
testing ×1
timezone ×1
tomcat ×1