2012-12-20 7 views
5

मैं लॉग फ़ाइल में ईवेंट लिखने की कोशिश कर रहा हूं लेकिन कोई फ़ाइल नहीं बनाई जा रही है। मुझे बिल्कुल कोई त्रुटि नहीं मिल रही है।(जावा) पाठ फ़ाइल लॉग करने के लिए ईवेंट लिखना

public class Logs { 
static FileHandler fileTxt; 
static SimpleFormatter formatterTxt; 


static public void logging() throws IOException { 

    Logger logger = Logger.getLogger(""); 
    logger.setLevel(Level.INFO);//Loget Info, Warning dhe Severe do ruhen 
    fileTxt = new FileHandler("c:/SimleTaskEvents.txt"); 
    formatterTxt = new SimpleFormatter(); 
    fileTxt.setFormatter(formatterTxt); 
    logger.addHandler(fileTxt); 

} 
} 
+1

भविष्य में पोस्ट करें अपने सटीक त्रुटि संदेश – wlk

+0

मैं सभी में कोई त्रुटि हो रही है। केवल "c: /" – Han

+0

में कोई फ़ाइल नहीं बनाई जा रही है, यह आपके कोड का परीक्षण करता है और यह ठीक काम करता है। समस्या कहीं और है। – svz

उत्तर

3
fileTxt = new FileHandler("c:/SimleTaskEvents.txt"); 

यह पंक्ति केवल एक हैंडलर बनाता में डेटा है।

यह फ़ाइल नहीं बनाता है। आपको क्या करना है, निर्देशिका "C: /" में फ़ाइल (SimleTaskEvents.txt) बनाएं। उसके बाद जब आप अपने कार्यक्रम को निष्पादित करते हैं, तो वही प्रोग्राम जो आपने यहां रखा है, आप इसे लॉग के रूप में देखेंगे।

0

आप उन आयात जोड़ने की जरूरत:: यहाँ लॉग वर्ग है

import java.util.logging.Logger; 
import java.util.logging.Level; 
+0

बेशक मैंने यह किया है :) – Han

+0

और यह काम नहीं कर रहा है ... – Han

4

आप लॉग पहले

logger.info("this is a line of logging"); 

को लिख सकते हैं और हो सकता है की जाँच इस tutorial

+0

हाँ मैं इसे किसी अन्य वर्ग के माध्यम से कर रहा हूं। मैं घोषणा करता हूं: – Han

+0

निजी अंतिम स्थैतिक लॉगर lgs = Logger.getLogger (Logs.class.getName()); – Han

+0

और मैं एलजीएस ऑब्जेक्ट का उपयोग करता हूं। समस्या यह है कि कोई फ़ाइल नहीं बनाई जा रही है! – Han

0
करने की जरूरत है

हम अपने आवेदन में लॉगर का उपयोग कर रहे हैं जैसे

import org.apache.log4j.BasicConfigurator; 
import org.apache.log4j.Category; 
import org.apache.log4j.PropertyConfigurator; 



public class MyLogger { 


public static Category appLog = Category.getInstance(MyLogger .class.getName() + ".APPLOG"); 

static { 
    try{ 
     BasicConfigurator.configure(); 
     Properties properties = new Properties(); 
     properties.load("PropertyFileName"); 
     PropertyConfigurator.configure(properties); 
     MyLogger.appLog.setAdditivity(false); 
     MyLogger.appLog.info("This is application log"); 

    }catch(Exception e){ 
     e.printStacktrace(); 
    } 
} 
} 

और यह संपत्ति फ़ाइल

#Logging configuration file. 

log4j.rootCategory=DEBUG, DEFAULTAPPENDER 

log4j.category.MyLogger.APPLOG=DEBUG, APPLOGAPPENDER 
log4j.appender.APPLOGAPPENDER=org.apache.log4j.RollingFileAppender 
log4j.appender.APPLOGAPPENDER.File=${catalina.home}/logs/applog.log 
log4j.appender.APPLOGAPPENDER.MaxFileSize=5000KB 
log4j.appender.APPLOGAPPENDER.MaxBackupIndex=20 
log4j.appender.APPLOGAPPENDER.layout=org.apache.log4j.PatternLayout 
log4j.appender.APPLOGAPPENDER.layout.ConversionPattern=%d - %m%n 
+1

यह log4j का उपयोग कर रहा है, मुझे बस एक साधारण टेक्स्ट फ़ाइल लिखनी है। हालांकि मैंने पिछली टिप्पणी के ट्यूटोरियल का पालन किया और मैं सोचता हूं कि मैं एक अच्छा तरीका हूं :) – Han

0

शायद this is तुम क्या जरूरत है ...

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.IOException; 
import java.util.logging.FileHandler; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 

/** 
* LogToFile class 
* This class is intended to be use with the default logging class of java 
* It save the log in an XML file and display a friendly message to the user 
* @author Ibrabel <[email protected]> 
*/ 
public class LogToFile { 

    protected static final Logger logger=Logger.getLogger("MYLOG"); 
    /** 
    * log Method 
    * enable to log all exceptions to a file and display user message on demand 
    * @param ex 
    * @param level 
    * @param msg 
    */ 
    public static void log(Exception ex, String level, String msg){ 

     FileHandler fh = null; 
     try { 
      fh = new FileHandler("log.xml",true); 
      logger.addHandler(fh); 
      switch (level) { 
       case "severe": 
        logger.log(Level.SEVERE, msg, ex); 
        if(!msg.equals("")) 
         JOptionPane.showMessageDialog(null,msg, 
          "Error", JOptionPane.ERROR_MESSAGE); 
        break; 
       case "warning": 
        logger.log(Level.WARNING, msg, ex); 
        if(!msg.equals("")) 
         JOptionPane.showMessageDialog(null,msg, 
          "Warning", JOptionPane.WARNING_MESSAGE); 
        break; 
       case "info": 
        logger.log(Level.INFO, msg, ex); 
        if(!msg.equals("")) 
         JOptionPane.showMessageDialog(null,msg, 
          "Info", JOptionPane.INFORMATION_MESSAGE); 
        break; 
       case "config": 
        logger.log(Level.CONFIG, msg, ex); 
        break; 
       case "fine": 
        logger.log(Level.FINE, msg, ex); 
        break; 
       case "finer": 
        logger.log(Level.FINER, msg, ex); 
        break; 
       case "finest": 
        logger.log(Level.FINEST, msg, ex); 
        break; 
       default: 
        logger.log(Level.CONFIG, msg, ex); 
        break; 
      } 
     } catch (IOException | SecurityException ex1) { 
      logger.log(Level.SEVERE, null, ex1); 
     } finally{ 
      if(fh!=null)fh.close(); 
     } 
    } 

    public static void main(String[] args) { 

     /* 
      Create simple frame for the example 
     */ 
     JFrame myFrame = new JFrame(); 
     myFrame.setTitle("LogToFileExample"); 
     myFrame.setSize(300, 100); 
     myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     myFrame.setLocationRelativeTo(null); 
     JPanel pan = new JPanel(); 
     JButton severe = new JButton("severe"); 
     pan.add(severe); 
     JButton warning = new JButton("warning"); 
     pan.add(warning); 
     JButton info = new JButton("info"); 
     pan.add(info); 

     /* 
      Create an exception on click to use the LogToFile class 
     */ 
     severe.addActionListener(new ActionListener(){ 

      @Override 
      public void actionPerformed(ActionEvent ae) { 
       int j = 20, i = 0; 
       try { 
        System.out.println(j/i); 
       } catch (ArithmeticException ex) { 
        log(ex,"severe","You can't divide anything by zero"); 
       } 

      } 

     }); 

     warning.addActionListener(new ActionListener(){ 

      @Override 
      public void actionPerformed(ActionEvent ae) { 
       int j = 20, i = 0; 
       try { 
        System.out.println(j/i); 
       } catch (ArithmeticException ex) { 
        log(ex,"warning","You can't divide anything by zero"); 
       } 

      } 

     }); 

     info.addActionListener(new ActionListener(){ 

      @Override 
      public void actionPerformed(ActionEvent ae) { 
       int j = 20, i = 0; 
       try { 
        System.out.println(j/i); 
       } catch (ArithmeticException ex) { 
        log(ex,"info","You can't divide anything by zero"); 
       } 

      } 

     }); 

     /* 
      Add the JPanel to the JFrame and set the JFrame visible 
     */ 
     myFrame.setContentPane(pan); 
     myFrame.setVisible(true); 
    } 
} 
संबंधित मुद्दे