小编Yur*_*nko的帖子

"状态"在Log4j2配置中意味着什么?

我刚刚完成了log4j2.xml配置文件的调整,发现了一些我不太懂的东西.那是什么<Configuration status="SOME_STATUS_HERE">

几乎在这里的所有示例中: 来自Apache的http://logging.apache.org/log4j/2.x/manual/configuration.html人员将状态添加到配置中.

例如,这是第一个:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"> <!--status="WARN" - what is this???--> 

 <Appenders>
  <Console name="Console" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
  </Console>
 </Appenders>

 <Loggers>
  <Root level="error">
   <AppenderRef ref="Console"/>
  </Root>
 </Loggers>

</Configuration>
Run Code Online (Sandbox Code Playgroud)

java configuration logging log4j log4j2

62
推荐指数
3
解决办法
2万
查看次数

即使测试失败,Gradle也会在测试阶段后执行任务

我使用gradle作为我的建设者.运行我的所有测试后,我想执行其他任务.如果没有测试失败

test.doLast { /*my task*/ }
Run Code Online (Sandbox Code Playgroud)

工作良好.但是如果至少有一个测试失败,我的任务就不会执行.

即使我的某些测试失败,有没有办法执行我的任务.

java testing build gradle

26
推荐指数
1
解决办法
1万
查看次数

如何使用log4j2.xml配置hibernate日志记录?

我最近切换到Apache log4j2,仍然找不到使用log4j2.xml配置hibernate日志记录的方法.

因为我无法找到解决此问题的方法,所以我仍然明确地将log4j.properties文件用于hibernate.这不是最佳解决方案,因为我的log4j2.xml使用JPA appender(将日志写入db).我不想为hibernate编写单独的逻辑.

有没有办法使用log4j2配置hibernate日志记录?

java configuration logging hibernate log4j2

10
推荐指数
1
解决办法
8205
查看次数

Log4j2:如何将日志写入每个用户的单独文件?

这是我面临的挑战:

我有一个servlet程序.我需要将每个用户的日志写入以该用户命名的文件夹.像这样的东西:

    // stores message to David folder
    // /root_path/David/logfile.log
    logger.error(MarkerManager.getMarker("David"), "Error happened");

    // stores message to Mark folder
    // /root_path/Mark/logfile.log                 
    logger.error(MarkerManager.getMarker("Mark"), "Something is broken");
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我使用了标记.但我真的不知道标记是否适合这项任务.

通常,我的appender应该像RollingRandomAccessFile appender一样.我想apppen for appender看起来像这样:

     <RollingRandomAccessFile name="rollingFile"
                 fileName="logs/{markerName ?????}/movie-db.log"
                 filePattern="logs/log-%d{yyyy-MM-dd}-%i.log.zip"
                 append="false"
                 immediateFlush="false"
                 ignoreExceptions="true">
        <PatternLayout pattern="%d{ISO8601} %level{length=5} [%thread] %logger - %msg%n"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="25 MB"/>
            <TimeBasedTriggeringPolicy />
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingRandomAccessFile>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

java configuration logging log4j log4j2

10
推荐指数
1
解决办法
1万
查看次数

为什么nvarchar的默认大小是255(MSSQL Server)?

为什么默认大小nvarchar为255(MSSQL Server)?我的意思是为什么不256?

我应该使用nvarchar(63)而不是nvarchar(64)等... 127而不是128?

我试图谷歌这个问题,我没有找到任何全面的答案.


编辑:

关于默认大小:这只是我的假设.Hibernate和EclipseLink(java持久性框架)将String转换为nvarchar(255),所以我认为这是一种标准.

sql t-sql sql-server types

9
推荐指数
1
解决办法
6559
查看次数

如何将所有日志从休眠和spring重定向到log4j2?

我使用下一个技术堆栈构建我的"superWebApp":

persistence provider - Hibernate 4.x
webMvc and beans container - Spring 4.x
web containter - Tomcat 7.5.x
Run Code Online (Sandbox Code Playgroud)

我有一个任务是将所有日志写入db.分别为每个日志记录框架执行它会很痛苦.这就是为什么我需要将所有日志重定向到单个框架然后使用DBAppender不会有问题.

我在想log4j2,因为我用它来写"superWebApp"中的日志.那么有什么想法如何将所有日志从hibernate和spring重定向到log4j2?(重定向tomcat loogs也不错)?

如果不可能,也许还有另一个可以成为核心的日志框架?

java spring tomcat hibernate log4j

8
推荐指数
2
解决办法
6428
查看次数

处理大量元素时,Hibernate内存不足异常

我正在尝试处理重量级元素(图像)的集合.收集的大小在8000-50000个条目之间变化.但由于某些原因,在处理1800-1900条目之后,我的程序属于java.lang.OutOfMemoryError:Java堆空间.

在我的理解中每当我调用session.getTransaction().commit()程序应该释放堆内存,但看起来它永远不会发生.我做错了什么?这是代码:

private static void loadImages( LoadStrategy loadStrategy ) throws IOException {
    log.info( "Loading images for: " + loadStrategy.getPageType() );

    Session session = sessionFactory.openSession();
    session.setFlushMode( FlushMode.COMMIT );
    Query query = session.createQuery( "from PageRaw where pageType = :pageType and pageStatus = :pageStatus and sessionId = 1" );
    query.setString( "pageStatus", PageStatus.SUCCESS.name() );
    query.setString( "pageType", loadStrategy.getPageType().name() );
    query.setMaxResults( 50 );

    List<PageRaw> pages;
    int resultNum = 0;

    do {

        session.getTransaction().begin();

        log.info( "Get pages statring form " + resultNum + " position" );
        query.setFirstResult( resultNum …
Run Code Online (Sandbox Code Playgroud)

java performance hibernate out-of-memory data-processing

5
推荐指数
1
解决办法
6970
查看次数

从网址中删除webjars版本

我们在项目中使用带有maven的webjars.所以我们有数百个JSP,代码如下:

<%--JSP CODE--%>
<script src="<c:url value="/webjars/jquery/2.2.0/jquery.min.js" />" type="text/javascript"></script>
<script src="<c:url value="/webjars/bootstrap/3.3.6/js/bootstrap.min.js" />" type="text/javascript"></script>
......... 
Run Code Online (Sandbox Code Playgroud)

正如你可以猜到的那样,更新到更新版本的webjars是一项繁琐的工作.所以我正在寻找允许我导入这样的脚本的解决方案:

<%--JSP CODE--%>
<script src="<c:url value="/webjars/jquery/jquery.min.js" />" type="text/javascript"></script>
<script src="<c:url value="/webjars/bootstrap/js/bootstrap.min.js" />" type="text/javascript"></script>
......... 
Run Code Online (Sandbox Code Playgroud)

基本上我想从url中删除webjar版本.你能为这个问题提出简单明了的解决方案吗?

到目前为止,我想出了资源servlet,它可以猜出url返回哪个文件.但是,此解决方案涉及应用程序启动时的完整资源扫描.

javascript java jsp maven webjars

5
推荐指数
1
解决办法
1117
查看次数

如何用前导空格解析LocalDateTime?

我正在尝试使用LocalDateTime解析html页面中的日期。而且我无法提出解决方案来进行以下测试。

(使用TestNG)第一行始终失败

static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("E MMM dd HH:mm:ss u");

    @DataProvider(name = "dateTimeFormats")
public Object[][] dateTimeFormats() {
    return new Object[][]{
            {"Mon Jan  5 06:41:07 2015", LocalDateTime.of(2015, 1, 5, 6, 41, 7)},
            {"Sun Jan 25 00:48:23 2015", LocalDateTime.of(2015, 1, 25, 0, 48, 23)},
            {"Mon Aug 14 07:58:00 2006", LocalDateTime.of(2006, 8, 14, 7, 58, 0)}
    };
}

@Test(dataProvider = "dateTimeFormats")
public void testParsePostDateTime(String dateTimeString, LocalDateTime expectedResult) {
    LocalDateTime result = LocalDateTime.parse(dateTimeString, DATE_TIME_FORMATTER);
    assertEquals(result, expectedResult);
}
Run Code Online (Sandbox Code Playgroud)

有什么想法应该使用哪种日期模式?

java formatting datetime parsing java-8

4
推荐指数
1
解决办法
550
查看次数

SpringMVC + Hibernate + Tomcat泄漏内存?

当我关闭我的webApp时.Tomcat不断显示SEVERE警告:

02-Mar-2014 23:07:30.890 SEVERE [http-apr-8080-exec-4]  org.apache.catalina.loader.WebappClassLoader.checkThreadLocalMapForLeaks The web application   [/movie-collection-0.0.2] created a ThreadLocal with
key of type [com.microsoft.sqlserver.jdbc.ActivityCorrelator$1] (value [com.microsoft.sqlserver.jdbc.ActivityCorrelator$1@520a38a8]) and a value of type [com.microsoft.sqlserver.jdbc.ActivityId] (val
ue [3488cbb4-f0e2-4505-93c4-78248b161847-2]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
02-Mar-2014 23:07:30.891 SEVERE [http-apr-8080-exec-4]  org.apache.catalina.loader.WebappClassLoader.checkThreadLocalMapForLeaks The web application [/movie-collection-0.0.2] created a ThreadLocal with
key of type [com.microsoft.sqlserver.jdbc.ActivityCorrelator$1] (value  [com.microsoft.sqlserver.jdbc.ActivityCorrelator$1@520a38a8]) and a value of type …
Run Code Online (Sandbox Code Playgroud)

java tomcat memory-leaks hibernate spring-mvc

3
推荐指数
1
解决办法
3234
查看次数

如何使用HttpSecurity(Spring Security)应用角色?

我使用的是Spring Security 3.2.3.RELEASE

这是我的WebSecurityConfigurerAdapter的代码

@Configuration
@EnableWebSecurity
public class WebSecurityContext extends WebSecurityConfigurerAdapter {

private static final Logger log = LogManager.getLogger(WebSecurityContext.class);

@Autowired
private AuthenticationProvider authenticationProvider;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    log.info("Setting AuthenticationManagerBuilder");
    auth.authenticationProvider(authenticationProvider);
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    log.info("Configuring HttpSecurity");
    http
            .authorizeRequests()
                .antMatchers("/admin/**").hasRole("ADMIN")
                .antMatchers("/**").hasRole("USER")
                .anyRequest().authenticated()
                .and()
                .httpBasic();

}
}
Run Code Online (Sandbox Code Playgroud)

结果是:HTTP状态403 - 访问被拒绝

但如果我评论这一行:

//.antMatchers("/**").hasRole("USER")
Run Code Online (Sandbox Code Playgroud)

一切正常.这意味着(我猜)我的角色或HttpSecurity出了问题.

所以我开始调试了.我仔细检查我的UserDetails有两个带有名称的GrantedAuthorities:ADMIN,USER.

那么任何可能导致问题的想法呢?

java configuration spring spring-security

2
推荐指数
1
解决办法
6591
查看次数

如何使用Java下载受保护的网页

我们有一个任务,设计一个可以下载任何网页源的类.但是,当我尝试测试我的代码并获取页面时http://anidb.net/perl-bin/animedb.pl?show=main- 没有任何工作.

像这样的标准代码失败:

import java.net.*;
import java.io.*;

public class URLReader {
    public static void main(String[] args) throws Exception {
        URL link = new URL("http://www.anidb.net/");
        BufferedReader in = new BufferedReader(
        new InputStreamReader(link.openStream()));

        String inputLine;
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

&#352;wq>&#178;"¦§5&#180;_&#239;__&#199;U&#186;=&#244;&#217;&#246;?k&#352;}~“bd`?l“&#207;&#231;z&#162;&#199;&#234;&#245;>_"?j&#215;‰R“y}K&#184;\&#204;c_DL&#217;&#170;&#207;_
    –&#243;Mm_&#188;_0”•&#246;°&#203;C_a&#237;&#189;s&#238;¤&#236;&#193;S ‚>dC0&#236;s_–y&#185;&#241;±&#207;&#221;&#220;A&#248;%&#200;_&#228;&#214;&#225;__&#230;©A@,4x„&#352;¶_&#235;&#201;&#402;?
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切:cookie,头文件,但似乎没有任何工作.如果你有一些暗示,我会很感激.

java security automation webpage download

1
推荐指数
1
解决办法
607
查看次数