20.2. コマンド


Apache Karaf は、etc/org.ops4j.pax.logging.cfg ファイルを変更する代わりに、ログ設定を動的に変更してログの内容を確認できる一連のコマンドを提供します。

20.2.1. log:clear

log:clear コマンドはログエントリーを消去します。

20.2.2. log:display

log:display コマンドは、ログエントリーを表示します。

デフォルトでは、rootLogger のログエントリーが表示されます。

karaf@root()> log:display
2015-07-01 19:12:46,208 | INFO  | FelixStartLevel  | SecurityUtils                    | 16 - org.apache.sshd.core - 0.12.0 | BouncyCastle not registered, using the default JCE provider
2015-07-01 19:12:47,368 | INFO  | FelixStartLevel  | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Starting JMX OSGi agent

logger 引数を使用して、特定のロガーからログエントリーを表示することもできます。

karaf@root()> log:display ssh
2015-07-01 19:12:46,208 | INFO  | FelixStartLevel  | SecurityUtils                    | 16 - org.apache.sshd.core - 0.12.0 | BouncyCastle not registered, using the default JCE provider

デフォルトでは、すべてのログエントリーが表示されます。Apache Karaf コンテナーが長時間にわたる場合には、非常に長い時間がかかる可能性があります。-n オプションを使用して、表示するエントリー数を制限することができます。

karaf@root()> log:display -n 5
2015-07-01 06:53:24,143 | INFO  | JMX OSGi Agent   | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Registering org.osgi.jmx.framework.BundleStateMBean to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@27cc75cb with name osgi.core:type=bundleState,version=1.7,framework=org.apache.felix.framework,uuid=5335370f-9dee-449f-9b1c-cabe74432ed1
2015-07-01 06:53:24,150 | INFO  | JMX OSGi Agent   | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Registering org.osgi.jmx.framework.PackageStateMBean to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@27cc75cb with name osgi.core:type=packageState,version=1.5,framework=org.apache.felix.framework,uuid=5335370f-9dee-449f-9b1c-cabe74432ed1
2015-07-01 06:53:24,150 | INFO  | JMX OSGi Agent   | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Registering org.osgi.jmx.framework.ServiceStateMBean to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@27cc75cb with name osgi.core:type=serviceState,version=1.7,framework=org.apache.felix.framework,uuid=5335370f-9dee-449f-9b1c-cabe74432ed1
2015-07-01 06:53:24,152 | INFO  | JMX OSGi Agent   | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Registering org.osgi.jmx.framework.wiring.BundleWiringStateMBean to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@27cc75cb with name osgi.core:type=wiringState,version=1.1,framework=org.apache.felix.framework,uuid=5335370f-9dee-449f-9b1c-cabe74432ed1
2015-07-01 06:53:24,501 | INFO  | FelixStartLevel  | RegionsPersistenceImpl           | 78 - org.apache.karaf.region.persist - 4.0.0 | Loading region digraph persistence

etc/org.apache.karaf.log.cfg ファイルの size プロパティーを使用すると、保存され保持されるエントリーの数を制限することもできます。

#
# The number of log statements to be displayed using log:display. It also defines the number
# of lines searched for exceptions using log:display exception. You can override this value
# at runtime using -n in log:display.
#
size = 500

デフォルトでは、各ログレベルは異なる色で表示されます。ERROR/FATAL は赤色で、DEBUG は紫、INFO は水色などで表示されます。--no-color オプションを使用して色付けを無効にすることができます。

ログエントリーの形式パターンは、etc/org.ops4j.pax.logging.cfg ファイルに定義された変換パターンを使用しません。デフォルトでは、etc/org.apache.karaf.log.cfg で定義されている pattern プロパティーを使用します。

#
# The pattern used to format the log statement when using log:display. This pattern is according
# to the log4j2 layout. You can override this parameter at runtime using log:display with -p.
#
pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n

-p オプションを使用して、パターンを動的に変更することもできます (1 回の実行)。

karaf@root()> log:display -p "\%d - \%c - \%m\%n"
2015-07-01 07:01:58,007 - org.apache.sshd.common.util.SecurityUtils - BouncyCastle not registered, using the default JCE provider
2015-07-01 07:01:58,725 - org.apache.aries.jmx.core - Starting JMX OSGi agent
2015-07-01 07:01:58,744 - org.apache.aries.jmx.core - Registering MBean with ObjectName [osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=6361fc65-8df4-4886-b0a6-479df2d61c83] for service with service.id [13]
2015-07-01 07:01:58,747 - org.apache.aries.jmx.core - Registering org.osgi.jmx.service.cm.ConfigurationAdminMBean to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@27cc75cb with name osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=6361fc65-8df4-4886-b0a6-479df2d61c83

このパターンは通常の Log4j2 パターンで、日付に %d、クラスに %c、ログメッセージに %m などのキーワードを使用できます。

20.2.3. log:exception-display

log:exception-display コマンドは、最後に発生した例外を表示します。

log:display コマンドの場合、log:exception-display コマンドはデフォルトで rootLogger を使用しますが、logger 引数を使用してロガーを指定できます。

20.2.4. log:get

log:get コマンドは、ロガーの現在のログレベルを表示します。

デフォルトでは、表示されるログレベルはルートロガーからのログレベルです。

karaf@root()> log:get
Logger                              │ Level
────────────────────────────────────┼──────
ROOT                                │ INFO
org.apache.aries.spifly             │ WARN
org.apache.karaf.jaas.modules.audit │ INFO
org.apache.sshd                     │ INFO

logger 引数を使用して、特定のロガーを指定できます。

karaf@root()> log:get ssh
INFO

logger 引数は、ALL キーワードを受け入れて、(リストとして) すべてのロガーのログレベルを表示します。

たとえば、etc/org.ops4j.pax.logging.cfg ファイルに独自のロガーを次のように定義します。

log4j2.logger.my.name = MyLogger
log4j2.logger.my.level = DEBUG

ロガーのリストは、対応するログレベルで確認できます。

karaf@root()> log:get ALL
Logger                              │ Level
────────────────────────────────────┼──────
MyLogger                            │ DEBUG
ROOT                                │ INFO
org.apache.aries.spifly             │ WARN
org.apache.karaf.jaas.modules.audit │ INFO
org.apache.sshd                     │ INFO

log:list コマンドは、log:get ALL のエイリアスです。

20.2.5. log:log

log:log コマンドを使用すると、ログにメッセージを手動で追加できます。Apache Karaf スクリプトを作成する場合には、以下が役立ちます。

karaf@root()> log:log "Hello World"
karaf@root()> log:display
12:55:21.706 INFO [pipe-log:log "Hello World"] Hello World

デフォルトでは、ログレベルは INFO ですが、-l オプションを使用して別のログレベルを指定できます。

karaf@root()> log:clear
karaf@root()> log:log -l ERROR "Hello World"
karaf@root()> log:display
12:55:41.460 ERROR [pipe-log:log "Hello World"] Hello World

20.2.6. log:set

log:set コマンドは、ロガーのログレベルを設定します。

デフォルトでは、rootLogger のログレベルが変更されます。

karaf@root()> log:set DEBUG
karaf@root()> log:get
Logger                              │ Level
────────────────────────────────────┼──────
ROOT                                │ DEBUG
...

level の後に logger 引数を使用して、特定のロガーを指定できます。

karaf@root()> log:set INFO my.logger
karaf@root()> log:get my.logger
Logger    | Level
-----------------
my.logger | INFO

level 引数は TRACE、DEBUG、INFO、WARN、ERROR、FATAL のいずれかの Log4j2 ログレベルを受け入れます。

また、DEFAULT の特別キーワードも使用できます。

DEFAULT キーワードの目的は、ロガーの現在のレベルを削除して (レベルのみ。アペンダーなどの他のプロパティーは削除されない)、ロガーの親レベル (ロガーは階層的) を使用することです。

たとえば、(etc/org.ops4j.pax.logging.cfg ファイルに) 次のロガーを定義しました。

rootLogger=INFO,out,osgi:*
my.logger=INFO,appender1
my.logger.custom=DEBUG,appender2

my.logger.custom ロガーのレベルを変更できます。

karaf@root()> log:set INFO my.logger.custom

以下のようになります。

rootLogger=INFO,out,osgi:*
my.logger=INFO,appender1
my.logger.custom=INFO,appender2

my.logger.custom ロガーで DEFAULT キーワードを使用して、レベルを削除できます。

karaf@root()> log:set DEFAULT my.logger.custom

以下のようになります。

rootLogger=INFO,out,osgi:*
my.logger=INFO,appender1
my.logger.custom=appender2

つまり、実行時に my.logger.custom ロガーは親 my.logger のレベルを使用するため、INFO となります。

ここで、my.logger ロガーで DEFAULT キーワードを使用するとします。

karaf@root()> log:set DEFAULT my.logger

以下のようになります。

rootLogger=INFO,out,osgi:*
my.logger=appender1
my.logger.custom=appender2

したがって、my.logger.custommy.logger はどちらも、親の rootLogger のログレベルを使用します。

rootLogger で DEFAULT キーワードを使用することはできず、親はありません。

20.2.7. log:tail

log:taillog:display と同じですが、ログエントリーが継続的に表示されます。

log:display コマンドと同じオプションと引数を使用できます。

デフォルトでは、rootLogger からのエントリーが表示されます。

karaf@root()> log:tail
2015-07-01 07:40:28,152 | INFO  | FelixStartLevel  | SecurityUtils                    | 16 - org.apache.sshd.core - 0.9.0 | BouncyCastle not registered, using the default JCE provider
2015-07-01 07:40:28,909 | INFO  | FelixStartLevel  | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Starting JMX OSGi agent
2015-07-01 07:40:28,928 | INFO  | FelixStartLevel  | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Registering MBean with ObjectName [osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=b44a44b7-41cd-498f-936d-3b12d7aafa7b] for service with service.id [13]
2015-07-01 07:40:28,936 | INFO  | JMX OSGi Agent   | core                             | 68 - org.apache.aries.jmx.core - 1.1.1 | Registering org.osgi.jmx.service.cm.ConfigurationAdminMBean to MBeanServer com.sun.jmx.mbeanserver.JmxMBeanServer@27cc75cb with name osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=b44a44b7-41cd-498f-936d-3b12d7aafa7b

log:tail コマンドから終了するには、CTRL-C を入力します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.