Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Application Logging

Îåêßíçóå áðü ôï ìÝëïò Panagiotis Kontopoulos. Τελευταία δημοσίευση από το μέλος Χρήστος Γεωργακόπουλος στις 14-01-2006, 23:46. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-01-2006, 22:59 8682

    Application Logging

    Πρόσφατα, στα πλαίσια ενός έργου με απασχόλησε το θέμα του Application Logging. Δηλαδή της ενσωμάτωσης μέσα σε μια εφαρμογή της λογικής εκείνης που θα επιτρέψει την λεπτομερή καταγραφή των ενεργειών που γίνονται (με επιτυχία ή όχι) μαζί με ένα σύνολο συνοδευτικών πληροφοριών,  με σκοπό τα στοιχεία αυτά να μπορούν να χρησιμοποιηθούν είτε σε κάποιο μελλοντικό auditing, είτε για performance tracing, είτε ακόμη και για debugging του περιβάλλοντος παραγωγής.

    Αναρωτιόμουνα λοιπόν αν σας έχει απασχολήσει το θέμα, και προσοχή δεν εννοώ από τεχνικής άποψης γιατί εκεί τα πράγματα είναι απλά, Enterprise Library ή Log4Net σε συνδυασμό με ένα Monitoring εργαλείο τύπου MOM και καθαρίσαμε. Με ενδιαφέρουν τυχόν απόψεις σας ή παραπομπές γύρω από το business του πράγματος.

    - Τι καταγράφω, Υπάρχει κάποια λίστα του τί πρέπει να καταγράφει μια εφαρμογή που σέβεται τον εαυτό της, Σε ποια φάση της ανάπτυξης πρέπει να καθοριστούν όλα αυτά, Πως συνδέονται με την καταγραφή απαιτήσεων, Πιθανές κατηγοριοποιήσεις των καταγραφομένων events, Προτάσεις για τις πληροφορίες που πρέπει να καταγράφονται στα διάφορα tiers της εφαρμογής - άλλα πράγματα θέλω στο data, άλλα στο business και άλλα στο UI, Τι γίνεται με τους perfomance counters, Πως καταλαβαίνω ποιούς πρέπει να κατασκευάσω κλπ

    - Και βέβαια δεν ξεχνάμε τα τεχνικά θέματα της υπόθεσης, όπως : Performance, Μέγεθος κώδικα, Συχνότητα, Που καταγράφω τι, κλπ

    Κάθε συνεισφορά ευπρόσδεκτη.

     

  •  14-01-2006, 23:46 8683 σε απάντηση της 8682

    Απ: Application Logging

    Μερικές σκόριπιες σκέψεις και προσωπικές απόψεις:

     panko wrote:
    Τι καταγράφω, Υπάρχει κάποια λίστα του τί πρέπει να καταγράφει μια εφαρμογή που σέβεται τον εαυτό της

    Debugging information: Πρέπει να καθορίσεις σε ποιο σημείο της εφαρμογής κάνεις το loging των exceptions που έρχονται. Αν είναι smart client εφαρμογή (με web services ενδιάμεσα) έχεις δύο σημεία: Τα webmethods στα web services και το UI στον client (ή κάπου "πάνω πάνω"). Αν δεν έχεις smart client παραλείπεις το πρώτο. Logging "πάνω-πάνω" σημαίνει ότι όλη σου η ιεραρχία κάνει handling τα exceptions της, προσθέτει τα δικά της κατανοητά μηνύματα και ξανακάνει throw τα exceptions μέχρι να φτάσουν στο ανώτερο επίπεδο το οποίο και θα κάνει log το πλήρες exception με όλα τα inner exceptions (και ίσως και ένα stack trace).

    Auditing: Αυτό είναι δικό σου θέμα, καθώς αφορά αποκλειστικά το δικό σου μοντέλο business. Πρέπει να καθορίσεις ποιες ενέργειες είναι σημαντικές και είναι χρήσιμο να καταγραφούν, καθώς και τι στοιχεία καταγράφεις για αυτές τις ενέργειες. Σκέψου επίσης και πως θα εκμεταλευτείς αυτές τις πληροφορίες στο μέλλον (τι search θα κάνεις στα δεδομένα που θα μαζεύεις).

    Performace tracing: Σκέψου ποια είναι τα bottlenecks της εφαρμογής και που πραγματικά αξίζει να κρατάς τέτοιες πληροφορίες. Αν το bottleneck είναι η βάση, τότε ίσως αυτό το θέμα πρέπει να παραμείνει στη βάση και η εφαρμογή να μην μετράει τίποτα. Αν έχεις μερικές ρουτίνες που όντως χρειάζονται σημαντικό υπολογιστικό χρόνο, που διαφέρει από client σε client και από χρήση σε χρήση, ίσως θα μπορούσε να σε καλύψει το γενικότερο auditing (απλά να καταγράφεις το χρόνο που χρειάστηκε η ενέργεια για να ολοκληρωθεί μαζί με τα υπόλοιπα στοιχεία που κρατάς). Αν δουλεύεις με smart client εκτός από τη βάση μπορεί να σου δώσει αρκετά καλά στοιχεία και ο IIS, οπότε δεν χρειάζεται κάποια ειδική μέριμνα στην εφαρμογή.

     panko wrote:
    Σε ποια φάση της ανάπτυξης πρέπει να καθοριστούν όλα αυτά

    Όσο πιο νωρίς τόσο πιο καλά. Ιδιαίτερα για το debug info και ιδιαίτερα αν συμμετέχουν πολλοί developers στο project, είναι απαραίτητο να καθορίσετε κάποια standards από την αρχή.

     panko wrote:
    Πως συνδέονται με την καταγραφή απαιτήσεων

    Ρώτα τον πελάτη αν θέλει να καταγράφονται κάποιες ενέργειες (για το Auditing). Για τα debug info, είναι θέμα δικής σου ευκολίας και ο πελάτης δεν χρειάζεται να ξέρει τίποτα. Για το performace είναι ανάμικτο, πρέπει να δεις αν ο πελάτης θέλει τέτοια στοιχεία αλλά και εσύ θα βοηθηθείς από αυτό.

     panko wrote:
    Πιθανές κατηγοριοποιήσεις των καταγραφομένων events

    Έχει να κάνει αρκετά με το project αυτό το θέμα, αλλά και με τον τρόπο που δουλεύετε. Αν πχ, κάθε developer αναλαμβάνει κάποιες φόρμες, μια αποτελεσματική κατηγοριοποίηση θα χώριζε τα events ανάλογα με τη φόρμα που παρουσιάστηκαν για να έχει ο κάθε developer μπροστά του αυτά που τον αφορούν. Αν κάθε developer δουλεύει διαφορετικό layer, ίσως να χρειαζόταν αντίστοιχα διαφορετική κατηγοριοποίηση.

     panko wrote:
    Προτάσεις για τις πληροφορίες που πρέπει να καταγράφονται στα διάφορα tiers της εφαρμογής - άλλα πράγματα θέλω στο data, άλλα στο business και άλλα στο UI. Τι γίνεται με τους perfomance counters, Πως καταλαβαίνω ποιούς πρέπει να κατασκευάσω κλπ

    Δεν μπορώ να σκεφτώ κάτι για αυτά, ίσως αν μας έλεγες μερικά πράγματα παραπάνω για την εφαρμογή;

     


    Χρήστος Γεωργακόπουλος
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems