Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java] Registrazione eventi

    vorrei creare un piccolo sistema di registrazione eventi.
    cioè ogni volta che si clicca su un evento (ad esempio questo per inserire dati):
    codice:
        private void btnAddBookActionPerformed(java.awt.event.ActionEvent evt) {                                           
            if (textBookName.getText().length() == 0) {
                JOptionPane.showMessageDialog(null, "Missing elemente book name");
            } else if (comboAuthor.getSelectedIndex() == 0) {
                JOptionPane.showMessageDialog(null, "Choose an auhtor");
            } else if (comboEditor.getSelectedIndex() == 0) {
                JOptionPane.showMessageDialog(null, "Choose an editor");
            } else {
                try {
                    String name = textBookName.getText().toLowerCase().trim();
                    Author author = (Author) comboAuthor.getSelectedItem();
                    int author_id = author.getId();
                    Editor editor = (Editor) comboEditor.getSelectedItem();
                    int editor_id = editor.getId();
                    double price = Double.parseDouble(textAddPrice.getText());
                    String isbn = textIsbn.getText().toLowerCase().trim();
                    String note = areaNote.getText().trim();
                    dbman.insert(name, author_id, editor_id, price, isbn, note);
                    JOptionPane.showMessageDialog(null, "Book added: " + textBookName.getText());
                    textBookName.setText("");
                    comboAuthor.setSelectedIndex(0);
                    comboEditor.setSelectedIndex(0);
                    textAddPrice.setText("");
                    textIsbn.setText("");
                    areaNote.setText("");
                } catch (SQLException ex) {
                    JOptionPane.showMessageDialog(null, ex.getMessage());
                } catch (ClassNotFoundException ex) {
                    JOptionPane.showMessageDialog(null, ex.getMessage());
                }
            }
        }
    venga salvato su disco un file.
    in questo file aggiungo tutti gli eventi e poi in chiusura di programma lo invio.
    che classi/metodi posso usare per registrare questi eventi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    devi usare una struttura statica, unica e condivisa (con tutti i problemi che ne derivano) per fare il log.
    Suppongo che un log su file ti vada bene (teoricamente anche log4j e scrivi che stai eseguendo il metodo x e altre info a te utili)

  3. #3
    Originariamente inviato da valia
    devi usare una struttura statica, unica e condivisa (con tutti i problemi che ne derivano) per fare il log.
    Suppongo che un log su file ti vada bene (teoricamente anche log4j e scrivi che stai eseguendo il metodo x e altre info a te utili)
    si va benissimo log su file.
    adesso mi guardo log4j grazie.

  4. #4
    ho trovato un esempio in giro sulla classe Logger standard di java e mi sono buttato su quella per ora.
    ho creato una classe del genere:
    codice:
    public class Log {
    
        public static void createLog(String message) {
            Logger logger = Logger.getLogger("log");
            FileHandler fh;
            try {
                fh = new FileHandler(pathOS(), true);
                logger.addHandler(fh);
                logger.setLevel(Level.ALL);
                SimpleFormatter formatter = new SimpleFormatter();
                fh.setFormatter(formatter);
                logger.log(Level.WARNING, message);
            } catch (SecurityException ex) {
                System.out.println(ex.getMessage());
            } catch (IOException ex) {
                System.out.println(ex.getMessage());
            }
        }
    
        public static String pathOS() {
            String path = null;
            if (System.getProperty("os.name").contains("window")) {
                path = System.getProperty("user.home") + "\\Mylog.log";
            } else {
                path = System.getProperty("user.home") + "/Mylog.log";
            }
            return path;
        }
    }
    ho provato a richiamarla su un evento:
    codice:
        private void btnAddAuthorActionPerformed(java.awt.event.ActionEvent evt) {                                             
            if (textAddAuthor.getText().length() == 0) {
                JOptionPane.showMessageDialog(null, "Choose an author");
            } else {
                try {
                    dbman.insertAuthor(textAddAuthor.getText());
                    JOptionPane.showMessageDialog(null, "Author inserted: " + textAddAuthor.getText());
                    textAddAuthor.setText("");
                    fillCBAuthor();
                    Log.createLog("Author inserted: " + textAddAuthor.getText());
                } catch (SQLException ex) {
                    JOptionPane.showMessageDialog(null, ex.getMessage());
                } catch (ClassNotFoundException ex) {
                    JOptionPane.showMessageDialog(null, ex.getMessage());
                }
            }
        }
    diciamo che funziona:
    30-mar-2011 13.12.25 book.Log createLog
    AVVERTENZA: Author inserted:

    qualche consiglio???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.