Ruby:
Kirjoittaminen standardivirheeseen
Miten:
Rubyn vakio kirjasto tarjoaa suoraviivaisen tavan kirjoittaa stderr:iin käyttäen $stderr
tai STDERR
. Tätä perustoimintoa varten ei tarvita kolmannen osapuolen kirjastoja.
Yksinkertaisen viestin kirjoittaminen stderr:iin:
$stderr.puts "Virhe: Tiedostoa ei löydy."
# Tai vastaavasti
STDERR.puts "Virhe: Tiedostoa ei löydy."
Näyte ulostulo (stderr:iin):
Virhe: Tiedostoa ei löydy.
Uudelleenohjataan stderr tiedostoon:
File.open('error.log', 'w') do |file|
STDERR.reopen(file)
STDERR.puts "Konfiguraation avaaminen epäonnistui."
end
Tämä koodinpätkä uudelleenohjaa stderr:n tiedostoon nimeltä error.log
, ja kaikki myöhemmin kirjoitetut virheet tulostetaan sinne, kunnes ohjelma nollaa stderr:n uudelleenohjauksen tai lopettaa.
Stderr:n käyttö poikkeusten käsittelyssä:
begin
# Simuloidaan operaatio, joka voi epäonnistua, esim., tiedoston avaaminen
File.open('olematon_tiedosto.txt')
rescue Exception => e
STDERR.puts "Poikkeus tapahtui: #{e.message}"
end
Näyte ulostulo (stderr:iin):
Poikkeus tapahtui: No such file or directory @ rb_sysopen - olematon_tiedosto.txt
Vaikka Rubyn sisäänrakennetut metodit stderr:iin kirjoittamiseen riittävät moniin sovelluksiin, monimutkaisempien lokitus tarpeiden osalta saattaa olla harkittava logger
standardi kirjastoa tai ulkopuolisia jalokiviä, kuten Log4r
. Nämä tarjoavat mukautettavia lokitusmekanismeja, mukaan lukien vakavuustasot, muotoilut ja kyvyn kirjoittaa useisiin ulostuloihin, mukaan lukien tiedostot, sähköpostit ja muuta.