English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Existen varios marcos de trabajo de registro de logs que se pueden usar para registrar datos en archivos. También puede definir sus propios métodos. En cualquier caso, para agregar la hora actual a la excepción registrada, se puede usarLocalDateTimeclase.
Es una clase inmutable que representa la fecha y hora, almacenando la fecha y hora comoaño-mes-día-hora-minuto-segundo.now()
El método de esta clase devuelve la fecha y hora actual.
Use este método para concatenar la fecha y hora actual a su mensaje de excepción y escribirlo en el archivo necesario.
import java.io.FileOutputStream; import java.io.IOException; import java.time.LocalDateTime; import java.util.Arrays; import java.util.Scanner; public class LoggingToFile { private static void writeLogToFile(Exception e) throws IOException { FileOutputStream writer = new FileOutputStream("ExceptionLog.txt"); byte bytes[] = (LocalDateTime.now();+": "+e.toString()).getBytes(); writer.write(bytes); System.out.println("Exception logged to your file"); } public static void main(String [] args) throws IOException { Scanner sc = new Scanner(System.in); int[] arr = {10, 20, 30, 2, 0, 8}; System.out.println("Array: "+Arrays.toString(arr)); System.out.println("Elija el numerador y el denominador (no 0) de este array (ingrese posiciones de 0 a 5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a])/(arr[b]); System.out.println("Resultado de "+arr[a]+"/"+arr[b]+": "+result); catch(ArrayIndexOutOfBoundsException ex) { System.out.println("Advertencia: Ha elegido una posición que no está en el array"); writeLogToFile(ex); catch(ArithmeticException ex) { System.out.println("Advertencia: No puede dividir un número por 0"); writeLogToFile(ex); } } }
Resultado de salida
Ingrese 3 valores enteros uno a uno: Array: [10, 20, 30, 2, 0, 8] Elija el numerador y el denominador (no 0) de este array (ingrese posiciones de 0 a 5) 1 4 Advertencia: No puede dividir un número por 0 Exception registrada en su archivo