Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely



Samankaltaiset tiedostot
Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Olio-ohjelmointi Javalla

Mikä yhteyssuhde on?

Luokat ja oliot. Ville Sundberg

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Ohjelmointi 2 / 2010 Välikoe / 26.3

12. Näppäimistöltä lukeminen 12.1

Eclipse 3.1 Pikaopas versio 1.0

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Pakkauksen kokoaminen

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

8. Näppäimistöltä lukeminen 8.1

9. Periytyminen Javassa 9.1

Metodien tekeminen Javalla

Pakkauksen kokoaminen

1 Tehtävän kuvaus ja analysointi

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

5. HelloWorld-ohjelma 5.1

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

JUnit ja EasyMock (TilaustenKäsittely)

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmoinnin perusteet, syksy 2006

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

8. Näppäimistöltä lukeminen 8.1

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

4. Luokan testaus ja käyttö olion kautta 4.1

9. Periytyminen Javassa 9.1

Java-kielen perusteita

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Java-kielen perusteita

7. Näytölle tulostaminen 7.1

Rajapinta (interface)

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

812347A Olio-ohjelmointi, X Reflektiivisyys

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Ohjelmoinnin jatkokurssi, kurssikoe

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

5. HelloWorld-ohjelma 5.1

Javan perusteita. Janne Käki

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

1. Olio-ohjelmointi 1.1

Oliot viestivät metodeja kutsuen

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

16. Javan omat luokat 16.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

JAVA-OHJELMOINTI 3 op A274615

Luokan sisällä on lista

Olio-ohjelmointi Virhetilanteiden käsittely

Ohjelmointi 2 / 2011 Välikoe / 25.3

Web Services tietokantaohjelmoinnin perusteet

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

5 Näppäimistö. 5.1 Näppäimistön eventit

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

KOHDELUOKAN MÄÄRITTELY

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

public static void main (String [] args)

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

17. Javan omat luokat 17.1

Interaktiivinen tarinankerronta

Ohjelmointi 2, välikoe

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

P e d a c o d e ohjelmointikoulutus verkossa

Tapahtumapohjainen ohjelmointi

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

YHTEYSSUHDE (assosiation)

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

RINNAKKAINEN OHJELMOINTI A,

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Java ja grafiikka. Ville Sundberg

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Periytyminen (inheritance)

Transkriptio:

Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1

Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva kieli mikä on javan versio mikä on javan CLASSPATHin sisältö jne. 2

Ominaisuuksien tutkiminen tapahtuu System- ja Properties- luokkien avulla java.lang.system-luokan konkreettinen ilmentymä on työasema jossa sovellus toimii java.util.properties on ominaisuuksien käsittelyyn tarkoitettu luokka 3

System-luokka ja ominaisuudet System-luokka ja ominaisuudet System-luokassa on metodi getproperties(), joka palauttaa järjestelmäominaisuuksien nimet Properties-luokan ilmentymänä Luodaan Properies-luokan ilmentymä, johon talletetaan järjestelmäominaisuudet: Properties ominaisuudet = System.getProperties(); 4

työaseman ominaisuuksien tutkiminen import java.util.properties; public class Nuuskija { Properties ominaisuudet; private void aja(){ ominaisuudet = new Properties(System.getProperties()); ominaisuudet.list(system.out) ; } } public static void main(string[] args) { // TODO Auto-generated method stub new Nuuskija().aja(); } 5

Ominaisuustiedostot Sovellusten yhteiset ominaisuudet talletetaan ominaisuus eli.properties-loppuisiin tiedostoihin Ominaisuuksia voivat olla esimerkiksi tiedosto/tiedostot joita sovellus käsittelee graafiseen käyttöliittymän ulkoasu sovelluspalvelimen ominaisuuksia 6

Mitä hyötyä on ominaisuustiedostojen käytöstä? Sovelluksen luokkien yhteiset ominaisuudet saavat samat arvot ja näin voidaan taata yhdenmukaisuus sovellukseen 7

Esimerkki Properties-tiedoston sisällöstä, sovelluspalvelimen ominaisuuksia: Muoto: admin.port=4848 pointbase.port=9092 domain.name=domain1 ominaisuuden nimi = ominaisuuden arvo 8

Kommentit ominaisuustiedostossa # Copyright (c) 2000, 2005 IBM Corporation and others. # All rights reserved. This program and the accompanying # materials are made available under the terms of the # Eclipse #Public License v1.0 # which accompanies this distribution, and is # available at http://www.eclipse.org/legal/epl-v10.html # ilmoittaa että kyseessä on kommenttirivi 9

Properties Ominaisuustiedostot voidaan ladata sovelluksen käyttöön Määritetään Properties-luokan ilmentymä (samoin kuin edellisessä esimerkissä): Properties propfile = new Properties(); Määritellään ominaisuustiedosto: String nimi; File ominaisuudet; nimi = "..\\tiedostot\\engheaders.properties"; tiedot = new File(nimi); Ladaan ominaisuustiedosto: propfile.load (new FileInputStream (nimi)); 10

Osio 4: Logger Seuranta Logging kerätään informaatiota ajettavasta ohjelmasta ja tarvittaessa sen käsittelemästä tiedosta, datasta. Jos ohjelman toimintaa testataan ja seurataan(debugataan), ohjelmasta saatava informaatio kertoo ohjelman toiminnasta. Tällaisia tilanteita ovat esimerkiksi tiedon talletus tietokantaan tai tiedostoon: talletetuista tapahtumista voidaan kirjoittaa informaatiota lokitiedostoon, josta tarvittaessa voidaan tutkia, mitä tietokannan käsiteltäessä tehtiin. 11

Osio 4: Logger Seuranta Kun ohjelman toimintaa halutaan seurata, voidaan käyttää println()-metodia ja tehdä itse ilmoituksia. Kuitenkin seuraaminen on hyödyllisempää ja tehokkaampaa Loggerin avulla. Loggerin avulla voidaan optimoida seuranta vakavampiin tapauksiin. Seurantaan tarvittavat luokat on pakkauksessa java.util.logging. 12

Osio 4: Logger Ilmoitukset Taso Vaikutus Numeroarvo OFF ei loki-ilmoituksia Integer.MAX_VALUE SEVERE vain erittäin vakavat ilmoitukset raportoidaan 1000 WARNIN G loki-ilmoitukset, tasot WARNING and SEVERE raportoidaan 900 INFO loki-ilmoitukset, tasot INFO ja vahvempi, raportoidaan 800 CONFIG loki-ilmoitukset, tasot CONFIG and vahvempi, raportoidaan 700 FINE loki-ilmoitukset, tasot FINE ja vahvempi, raportoidaan 500 FINER loki-ilmoitukset, tasot FINER ja vahvempi, raportoidaan 400 FINEST loki-ilmoitukset, tasot FINEST and aboveja vahvempi, raportoidaan ALL kaikki loki-ilmoitukset raportoidaan Integer.MIN_VALUE 300 13

Osio 4: Logger Käsittelijät StreamHandler ConsoleHandler FileHandler SocketHandler MemoryHandler kirjoittaa tietueet OutputStream-luokan ilmentymään Kirjoittaa ilmoitukset System.err standardivirhevirtaan kirjoitaa ilmoitukset yhteen tai useampaan lokitiedostoon tietoliikennettä varten, kirjoittaa ilmoitukset TCP portteihin puskuroi lolokitietueet muistiin 14

Osio 4: Logger Ilmoituksen muotoilijat Formatters muotoilijat Formatterin avulla voidaan muotoilla Handlereiden tekemiä ilmoituksia. Jos käytät esimerkiksi FileHandleria ilman muotoilijaa, voi syntyvän tietueen sisältö olla hankalasti luettavissa, koska sisältö on XML:ää. Kun lisäät muotoilijan, ilmoitus on luettavammassa muodossa. 15

Osio 4: Logger Muotoilijat Luokat SimpleFormatter() format (LogRecord record) XMLFormatter() format(logrecord record) 16

Osio 4: Logger Esimerkit osion 4 sivustossa: TekstitiedostoLogger.java: esittelee Loggerin ja sen avulla saatavan informaation käyttöä. Ohjelma lukee tekstitiedostoa ja Loggerin avulla tulostetaan informaatiota konsoliin. TekstitiedostoKirjoittajaLogger: tiedostoon kirjoitetaan rivejä ja niistä tehdään myös lokitiedosto. 17