コーディングを始めましょう:
@Startup
@Singleton
import org.apache.log4j.Logger;
public class MyClass{
public static final Logger logger = Logger.getLogger(MyClass.class.getSimpleName());
@PostConstruct
private void invoke() {
LOG.info("INFO");
LOG.warn("WARN");
LOG.error("ERROR");
LOG.fatal("FATAL");
LOG.debug("DEBUG");
LOG.trace("TRACE");
}
}
私が変更した場合:
<root-logger> <level name="INFO"/>...</root-logger> to "DEBUG" instead of "INFO"
デバッグコンソールがあります。すべて正常に動作します。
今、私は何かを変えたいと思っています。
通常、ルートロガーを「INFO」にしたい。ただし、XYZ パッケージは「DEBUG」になります。
そのようなものですが、機能しません:
<logger category="XXX.YYY.ZZZ" use-parent-handlers="false">
<level name="DEBUG"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
言い換えれば。XXX.YYY.ZZZ パッケージのみをデバッグしたい。別のパッケージではありません (別のパッケージの場合は「INFO」)。いくつかのフィルターまたは例外が必要な場合があります。
log4j の階層順序は次のとおりであるため、この XMLは機能しません。
OFF <------ PERMITED
FATAL <------ PERMITED
ERROR <------ PERMITED
WARN <------ PERMITED
INFO <----- COSTUME LOGGING PERMITTED UP TO INFO (if root-logger is "INFO)
DEBUG
TRACE
ALL
root-logger が "INFO" の場合、現在のパッケージへのコスチューム ロギングを作成する権限のみがあり、階層は UP TO INFOです
しかし、私はいくつかの例外またはそのようなものが必要です。XML 構成ファイルやプロパティ ファイルは必要ありません。standlone.xml を変更するだけです。