小编rya*_*all的帖子

修改Tomcat下的java.util.logging.SimpleFormatter格式属性

我正在使用Tomcat 7.0.28,在Ubuntu上的OpenJDK 1.7下运行,我正在尝试修改java.util.logging.SimpleFormatter使用的格式化字符串.根据该类的Javadocs,我可以指定属性java.util.logging.SimpleFormatter.format来更改格式.事实上,当我在Eclipse中运行我的webapp并在我的logging.properties文件中更改此属性时,它可以工作.

但是,当我将应用程序部署到Tomcat时,此属性似乎没有任何效果.我确信我的属性文件正在被正确读取,因为我对它做的其他更改确实生效了(我正在使用文件读取属性)

LogManager.getLogManager().readConfiguration(new FileInputStream(file))
Run Code Online (Sandbox Code Playgroud)

where文件是通过我的web.xml文件中的参数配置的.我已经尝试将该文件放在WEB-INF/classes/logging.properties中,但行为没有变化.

SimpleFormatter的Javadocs指定如果属性文件和系统属性都指定格式化字符串,则系统属性优先.我已验证未设置系统属性

context.log ("Formatting system property is " + System.getProperty("java.util.logging.SimpleFormatter.format"));
Run Code Online (Sandbox Code Playgroud)

在ServletContextListener.contextInitialized方法中.

这是我的记录属性文件

handlers=java.util.logging.ConsoleHandler

#  Default logging level for root logger
.level=FINE

#  Set the level for the ConsoleHandler
java.util.logging.ConsoleHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=[%1$tF %1$tr] %3$s %4$s:  %5$s %n
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我能想到的一切,包括修改TOMCAT/conf和JRE_HOME/lib目录中的logging.properties.似乎没有任何区别.

tomcat java.util.logging

15
推荐指数
4
解决办法
3万
查看次数

需要使用NEST ElasticSearch库构建复杂索引的具体文档/示例

我想使用NEST库的Fluent界面来创建索引,其中包括设置自定义过滤器,分析器和类型映射.我想避免使用特定于NEST的注释来装饰我的类.

我在http://nest.azurewebsites.net/indices/create-indices.htmlhttp://nest.azurewebsites.net/indices/put-mapping.html上看过这些文档.本文档虽然显示了一些示例,但还不够完整,无法帮助我弄清楚如何使用Fluent API构建一些复杂的索引方案.

我发现http://euphonious-intuition.com/2012/08/more-complicated-mapping-in-elasticsearch/上的教程非常有用; 一些代码显示如何通过NEST Fluent接口代替直接JSON来构建本教程中的过滤器,分析器和映射,这将是这个问题的一个很好的答案.

elasticsearch nest

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

怎么做&&和|| 在NEST中构建查询?

根据http://nest.azurewebsites.net/concepts/writing-queries.html,&&和|| 运算符可用于使用NEST库组合两个查询以与Elastic Search进行通信.

我有以下查询设置:

var ssnQuery = Query<NameOnRecordDTO>.Match(
                q => q.OnField(f => f.SocialSecurityNumber).QueryString(nameOnRecord.SocialSecurityNumber).Fuzziness(0)
            );
Run Code Online (Sandbox Code Playgroud)

然后将其与Bool查询结合使用,如下所示:

var result = client.Search<NameOnRecordDTO>(
     body => body.Query(
          query => query.Bool(
              bq => bq.Should(
                  q => q.Match(
                     p => p.OnField(f => f.Name.First)
                         .QueryString(nameOnRecord.Name.First).Fuzziness(fuzziness)
                  ),
                  q => q.Match(p => p.OnField(f => f.Name.Last)
                         .QueryString(nameOnRecord.Name.Last).Fuzziness(fuzziness)
                  )
              ).MinimumNumberShouldMatch(2)
          ) || ssnQuery
     )
);
Run Code Online (Sandbox Code Playgroud)

我认为这个查询意味着如果SocialSecurityNumber匹配,或者两个Name.FirstName.Last字段都匹配,那么记录应该包含在结果中.

当我使用在QueryString调用中使用的nameOnRecord对象的跟随数据执行此查询时:

"socialSecurityNumber":"123456789",
    "name" : {
      "first":"ryan",          
    }
Run Code Online (Sandbox Code Playgroud)

结果是SSN的人123456789,以及任何有名字的人ryan.

如果我|| ssnQuery从上面的查询中删除,我会得到名字为'ryan'的每个人.

随着|| …

elasticsearch nest

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

为什么在 Angular 中连接多个 HttpClient 调用时,concat RxJS 运算符会发出 Observables 而不是值

我正在尝试发出多个 HTTP 请求来响应“全部更新”按钮的单击。我的代码如下所示:

let new_items:Observable<ApiResponse<ShoppingListItem>>[] = this.items
      .map(item => new ShoppingListItem(...))
      .map(item => this.shoppingListService.updateItem(item));


concat(new_items).subscribe(
  r => console.log(r);
);
Run Code Online (Sandbox Code Playgroud)

this.shoppingListService.updateItem返回通过调用生成的 Observable httpClient.put

运行此代码时,我希望看到打印的值是console.log(r)该方法生成的类型updateItem。相反,它是一个可观察的。我的服务器日志表明没有发出 HTTP 请求。这似乎表明它没有被订阅。我对文档的理解concat是,传递给的每个单独的 Observableconcat将在 Observable 完成之前按顺序订阅。

如果我替换concatforkJoin我会得到我期望的结果。我并不特别关心顺序,所以我可以很好地使用,forkJoin但我想了解为什么使用concat不起作用。

rxjs angular

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

标签 统计

elasticsearch ×2

nest ×2

angular ×1

java.util.logging ×1

rxjs ×1

tomcat ×1