4

GAE アプリをデプロイする前に、数百の単体テストをローカルで実行しています。memcache やデータストアなどの GAE サービスを使用するために LocalServiceTestHelper を使用していますテスト間でヘルパーをセットアップおよび破棄すると、大量のログ出力が作成されます。

LocalServiceTestHelper によって引き起こされるINFO メッセージを完全に回避するために、java.util.loggingを再構成するにはどうすればよいですか?

INFO: Local Datastore initialized: 
Type: Master/Slave
Storage: In-memory
Feb 08, 2013 7:01:52 PM com.google.appengine.api.taskqueue.dev.LocalTaskQueue init
INFO: LocalTaskQueue is initialized
Feb 08, 2013 7:01:52 PM com.google.appengine.api.taskqueue.dev.LocalTaskQueue init
INFO: Automatic task execution is disabled.
Feb 08, 2013 7:01:52 PM org.quartz.simpl.SimpleThreadPool initialize
INFO: Job execution threads will use class loader of thread: main
Feb 08, 2013 7:01:52 PM org.quartz.core.QuartzScheduler <init>
INFO: Quartz Scheduler v.null.null.null created.
Feb 08, 2013 7:01:52 PM org.quartz.simpl.RAMJobStore initialize
INFO: RAMJobStore initialized.
Feb 08, 2013 7:01:52 PM org.quartz.impl.StdSchedulerFactory instantiate
INFO: Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
Feb 08, 2013 7:01:52 PM org.quartz.impl.StdSchedulerFactory instantiate
INFO: Quartz scheduler version: null.null.null
Feb 08, 2013 7:01:52 PM com.google.appengine.api.taskqueue.dev.LocalTaskQueue start_
INFO: Local task queue initialized with base url http://localhost:8080
Feb 08, 2013 7:01:52 PM org.quartz.core.QuartzScheduler shutdown
INFO: Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.
Feb 08, 2013 7:01:52 PM org.quartz.core.QuartzScheduler standby
INFO: Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.
Feb 08, 2013 7:01:52 PM org.quartz.core.QuartzScheduler shutdown
INFO: Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.

編集:

ファイル src/test/resources/logging.properties を作成しました。ファイルは、テストが実行される前に target/test-classes/ にコピーされます。次の内容があります。

com.google.appengine.api.taskqueue.dev.level=SEVERE
org.quartz.level=WARNING

しかし、テストの実行中も同じログ出力が表示されます。

4

2 に答える 2

3

src/test/resources/ の logging.properties ファイルは整形式でしたが、maven-surefire-plugin はその場所を認識していませんでした。別の stackoverflow の投稿で説明されているように、プラグインを構成するときに java.util.logging.config.file システム プロパティを設定する必要があります。この単純な変更を適用すると、すべてが期待どおりに機能します。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.4.2</version>
  <configuration>
    <systemProperties>
      <property>
        <name>java.util.logging.config.file</name>
        <value>${project.build.directory}/test-classes/logging.properties</value>
      </property>
    </systemProperties>
   ...
于 2013-02-10T14:29:49.713 に答える
0

logging.propertiesフォルダーからコピーを取得appengine-java-sdk/config/user/し、プロジェクトのクラスパス(src/test/resourcesmavenを使用している場合はフォルダーなど)に配置し、ここから独自の設定の構成を開始します。

# A default java.util.logging configuration.
# (All App Engine logging is through java.util.logging by default).
#
# To use this configuration, copy it into your application's WEB-INF
# folder and add the following to your appengine-web.xml:
# 
# <system-properties>
#   <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
# </system-properties>
#

# Set the default logging level for all loggers to WARNING
.level = WARNING

特定のパッケージのログレベルを構成するには、次を使用します。

# Set logging level for particular package
com.google.appengine.api.taskqueue.dev.level = SEVERE
org.quartz.level = WARNING

完全な構成ガイドについてはlib/logging.properties、JREインストールフォルダーを確認してください。

于 2013-02-08T23:35:50.350 に答える