java.util.logging
を使用しようとしていません。 https://stackoverflow.com/a/8249319/3322533を利用するように試みでJava - 使用するカスタムロガーを設定してください
:
handlers = mypackage.logging.RequestFileHandler, mypackage.logging.MainFileHandler
config =
mainLogger.handlers = mypackage.logging.MainFileHandler
requestLogger.handlers = mypackage.logging.RequestFileHandler
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.filter =
java.util.logging.ConsoleHandler.formatter = mypackage.logging.VerySimpleFormatter
java.util.logging.ConsoleHandler.encoding =
mypackage.RequestFileHandler.level = SEVERE
mypackage.RequestFileHandler.filter =
mypackage.RequestFileHandler.formatter = mypackage.logging.VerySimpleFormatter
mypackage.RequestFileHandler.encoding =
mypackage.RequestFileHandler.limit =
mypackage.RequestFileHandler.count =
mypackage.RequestFileHandler.append = false
mypackage.RequestFileHandler.pattern = REQUESTS.%u.%g.log
mypackage.MainFileHandler.level = INFO
mypackage.MainFileHandler.filter =
mypackage.MainFileHandler.formatter = mypackage.logging.VerySimpleFormatter
mypackage.MainFileHandler.encoding =
mypackage.MainFileHandler.limit =
mypackage.MainFileHandler.count =
mypackage.MainFileHandler.append = false
mypackage.MainFileHandler.pattern = MAIN.%u.%g.log
public class MainFileHandler extends FileHandler {
public MainFileHandler() throws IOException, SecurityException {
super();
}
}
と
public class RequestFileHandler extends FileHandler {
public RequestFileHandler() throws IOException, SecurityException {
super();
}
}
意向:
介してアクセス2つのロガーを提供又は
Logger.getLogger("requestLogger");
それぞれREQUESTS[...].log
(制限なしのいずれかのファイルに記録することができるメッセージの量で、および必要な場合にMAIN[...].log
および他に(排他的に)書き込む1 、のいずれかに不要なのMSGをフィルタリングするためにログレベルを使用します。)
しかし、どちらのファイルが作成されたときにI(
)例えばそして私
log.info("Hello World!")
前
public void configureLogger(){
try {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream config = classLoader.getResourceAsStream("logging.properties");
LogManager.getLogManager().readConfiguration(config);
}catch(Exception ex){
throw new RuntimeException("logging properties failed");
}
}
私はhandlers = ...
リストにjava.util.logging.ConsoleHandler
を含め、グローバルロガーを使用する場合、代わりに、フォーマッタがために適用されるので、私は性質がロードされている知っていますコンソール出力。
だから私はファイルロガーを設定しようとしたのは間違いだと思います。これをどうやって稼働させるのですか?
EDIT
だから私は[...].pattern = [...]
行を削除し、代わりにファイル名をハードコード:
public class MainFileHandler extends FileHandler implements FileHandlerProperties {
public MainFileHandler() throws IOException, SecurityException {
super("MAIN_" + new SimpleDateFormat(TIME_PATTERN).format(new Date()) + ".log");
}
}
と
public class RequestFileHandler extends FileHandler implements FileHandlerProperties {
public RequestFileHandler() throws IOException, SecurityException {
super("REQUESTS_" + new SimpleDateFormat(TIME_PATTERN).format(new Date()) + ".log");
}
}
public interface FileHandlerProperties {
static final String TIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
}
両方のファイルは、現在作成されますが、それらは両方は(それらの異なるレベルの設定およびロガーにもかかわらず)とまったく同じが含まれており、彼らが含まれていることは、XMLである:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2016-10-10T18:49:23</date>
<millis>1476118163654</millis>
<sequence>0</sequence>
<logger>mainLogger</logger>
<level>INFO</level>
<class>mypackage.main.Main</class>
<method><init></method>
<thread>1</thread>
<message>Hello World</message>
</record>
</log>
...
は「あなたのプロパティファイルから '文字。 – VGR
@VGRは削除' '」'削除 ''、任意の違いを確認していないようです。 – User1291