Blame view

src/main/java/eu/omp/irap/vespa/epntapclient/utils/Log.java 3.04 KB
2ad62d51   Nathanael Jourdane   Add Logger and er...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * This file is a part of EpnTAPClient.
 * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer.
 * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861
 * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie.
 * 
 * This program is free software: you can
 * redistribute it and/or modify it under the terms of the GNU General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or (at your option) any later
 * version. This program is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE. See the GNU General Public License for more details. You should have received a copy of
 * the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */
package eu.omp.irap.vespa.epntapclient.utils;

e6aee5d0   Nathanael Jourdane   Improve the Log c...
18
19
20
21
22
23
24
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
2ad62d51   Nathanael Jourdane   Add Logger and er...
25
26
import java.util.logging.Logger;

e6aee5d0   Nathanael Jourdane   Improve the Log c...
27
28
29
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

2ad62d51   Nathanael Jourdane   Add Logger and er...
30
31
32
33
34
35
36
/**
 * Simple class to provide the logger.
 * 
 * @author N. Jourdane
 */
public class Log {
	/** The logger. */
5967fb74   Nathanael Jourdane   Add the VOTable s...
37
	public final static Logger LOGGER = Logger.getAnonymousLogger();
e6aee5d0   Nathanael Jourdane   Improve the Log c...
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97

	/**
	 * Print the specified object in JSON format in a file on the temp directory. The default file
	 * name is "log.json"
	 * 
	 * @param obj the object to print in a file.
	 * @return The path of the file.
	 */
	public static String printObject(Object obj) {
		return printObject("log", obj);
	}

	/**
	 * Print the specified object in JSON format in a file on the temp directory.
	 * 
	 * @param title The name of the file.
	 * @param obj the object to print in a file.
	 * @return The path of the file.
	 */
	public static String printObject(String title, Object obj) {
		Gson gson = new GsonBuilder().setPrettyPrinting().create();
		String json = gson.toJson(obj);
		String path = Const.TMP_DIR + "/" + title + ".json";
		try (FileWriter writer = new FileWriter(path)) {
			writer.write(json);

		} catch (IOException e) {
			Log.LOGGER.severe("Can not print in the file: \n" + e);
		}

		return path;
	}

	// TODO: Use Log4j instead

	/**
	 * Delete the content of the log file.
	 */
	public static void clearFile() {
		try (PrintWriter writer = new PrintWriter(Const.TMP_DIR + "/log")) {
			writer.print("");
		} catch (FileNotFoundException e) {
			Log.LOGGER.severe("Can not print in the file: \n" + e);
		}
	}

	/**
	 * Print a message in a log file (named "log").
	 * 
	 * @param text The text to log in the file
	 */
	public static void logInFile(Object text) {
		try {
			Files.write(Paths.get(Const.TMP_DIR + "/log"), (text.toString() + "\n").getBytes(),
					StandardOpenOption.APPEND);
		} catch (IOException e) {
			Log.LOGGER.severe("Can not print in the file: \n" + e);
		}
	}

2ad62d51   Nathanael Jourdane   Add Logger and er...
98
}