16

eclipseと同じ機能を自動的に生成して出力するSystem.out.println(ClassName::MethodName <then my message>)機能 (コンソールでデバッグするためのクラス名とメソッド名を出力します) がNetbeansにもあるかどうかを知りたいです。

たとえば、Eclipse エディターでは、次のように入力します。

システム + Ctrl+Space

コンソールに System.out.println(ClassName::MethodName ) タイプの出力を自動生成します。

そのような方法はNetbeansで利用できますか?

現在、Netbeans には 2 つのメソッドしかありません。

南+Tab

(System.out.println()) および

soutv +Tab

(System.out.println(行のすぐ上で使用される変数を出力します)) 自動的に。

言い換えると、myMethod1 の代わりに、囲んでいるメソッド名を取得したいのです。

例えば。:

public class X {

  public void myMethod1(int a) {
    System.out.println(X::myMethod1()); // This should be produced when I type the Code-Template abbreviation (example: syst) and press tab (or corresponding key).
  }
}

public class Y {

  public void myMethod2(int b) {
    System.out.println(Y::myMethod2()); // This should be produced when I type the Code-Template abbreviation (example: syst) and press tab (or corresponding key).
  } 
}  

アップデート:

次のコード テンプレートを使用します。

syst = System.out.println("${classVar editable="false" currClassName default="getClass()"}");

クラス名を出力できますが、メソッド名の手がかりはまだありません。

4

3 に答える 3

7

これを使用Loggerして実装できます。

Apache log4jは、Java ベースのロギング ユーティリティです。

log4jまたは他のロガー実装を使用するclassと、使用するよりもmethod情報とすべての商用アプリケーションの使用が得られますloggerSystem.out.

ロガーは、ログに記録されたメッセージのさまざまなレベルの重要性を定義する機能と、出力にさまざまなシンク (コンソール、ファイルなど) を使用する機能も提供します。

また、ロガーを使用しているときに、特定のタイプのメッセージのみを有効または無効にすることも簡単です。たとえば、本番環境ですべてのデバッグ メッセージを表示したくない場合などです。

アプリケーションが を使用している場合は、 Log4j と AOPspring frameworkを使用してこれを実装できます。

Setting the log level

設定できるログ レベルは 5 つあります。

`FATAL` — logs only fatal errors

`ERROR` — logs all errors

`WARN` — logs warnings, and all errors

`INFO` — logs information, warnings, and all errors

`DEBUG` — logs debug information, and all other levels

サンプルlog4j.xmlファイル

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
 <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{ABSOLUTE} 
      %5p %c{1}:%L - %m%n"/> 
    </layout>
     </appender>
       <root>
      <priority value="debug"></priority>
      <appender-ref ref="stdout"/>
    </root>
</log4j:configuration>

この構成ファイルでは、何を保存するかを選択できます。

Like%mは、それが格納されることを意味しますmethod name。他のものと同様に、さまざまな用途で読む必要があります。良い点は、必要に応じてカスタマイズできることです。

于 2012-10-28T06:26:45.037 に答える
1

現在、いくつかのテストを行った後、NetBeansで同じ機能を実現する方法がわかりません。過去にうまく機能していたように見えるので、おそらくあなたは日食に固執することができます。

NetBeansでこれを本当に実行したい場合(私はまだEclipseを好みます(そしてお勧めします))、このプラグインを見て、おそらくそれを編集して、探しているSystemTrace機能を追加することをお勧めします。

于 2012-10-23T23:02:01.667 に答える
1

@vikiiii が提案するログ フレームワークの使用を検討する必要があります。さらに進んで、log4j を含むロギング フレームワークをシームレスに組み込む方法を提供するsl4fjを検討することをお勧めします。これはより多くの作業 (およびより多くのことを学ぶ必要がある) のように思えるかもしれませんが、 を使用しないことには非常に優れたパフォーマンス上の理由がありSystem.out.println()ます。

具体的にSystem.out.println()は、書き込み中にすべてのスレッドをブロックし、ここで説明する重要なアプリケーションのパフォーマンスに影響を与えます

于 2012-10-29T02:44:48.427 に答える