Hirdetés

Keresés

Új hozzászólás Aktív témák

  • WonderCSabo
    félisten

    Üdv!

    Egy saját "loggert" használok és console mellett fájlba is szeretném kiírni. A fájlt létrehozza sikeresen, de egyszerűen nem ír bele semmit. Mi lehet a gond?

    public class Logger {
    private static File logFile = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()+"log.txt");

    public static void log(Object s) {
    if(!Settings.logging) return;
    //console
    System.out.println("L: "+s);

    //file
    try {
    if(!logFile.exists()){
    logFile.createNewFile();
    }
    FileWriter fw = new FileWriter(logFile.getName(),true);
    BufferedWriter bw = new BufferedWriter(fw);
    bw.newLine();
    bw.write(s.toString());
    bw.close();
    fw.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    Számomra jónak tűnik a cucc, le is futtattam, létrehozza a fájlt és logol is bele. Két gondolatom van csak:

    Settings.logging esetleg nem false?

    FileWriter fw = new FileWriter(logFile.getName(),true);

    Ezzel vigyázz, mert ez csak a current directoryban fogja létrehozni a fájlt a névvel, szóval nem ott lesz, ahol sejted. Pl. ha IDE-ből futtatod:

    logFile útvonala a build mappában belül log.txt

    new FileWriter(logFile.getName(),true) viszont az aktuális mappában, tehát a projekt mappában hozza létre a fájlt és írja

    Szerk.: Közben már látom megtaláltad a jó megoldást, de akkor a posztom alapján már érted, hogy az előző miért nem ment. :)

  • dabadab
    titán

    Üdv!

    Egy saját "loggert" használok és console mellett fájlba is szeretném kiírni. A fájlt létrehozza sikeresen, de egyszerűen nem ír bele semmit. Mi lehet a gond?

    public class Logger {
    private static File logFile = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()+"log.txt");

    public static void log(Object s) {
    if(!Settings.logging) return;
    //console
    System.out.println("L: "+s);

    //file
    try {
    if(!logFile.exists()){
    logFile.createNewFile();
    }
    FileWriter fw = new FileWriter(logFile.getName(),true);
    BufferedWriter bw = new BufferedWriter(fw);
    bw.newLine();
    bw.write(s.toString());
    bw.close();
    fw.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    Gondolom egy fw.write(s.toString()); sor sokat lenditene a dolgokon :DDD

Új hozzászólás Aktív témák