Project

General

Profile

1
package eu.dnetlib.common.logging;
2

    
3
import java.util.Date;
4
import java.util.Iterator;
5
import java.util.Map;
6

    
7
import javax.annotation.PostConstruct;
8

    
9
import org.springframework.beans.factory.annotation.Required;
10
import org.springframework.core.io.Resource;
11

    
12
import eu.dnetlib.common.logging.conf.DnetLogConfigurationLoader;
13
import eu.dnetlib.common.logging.dao.DnetLoggerDao;
14

    
15
public class DnetLogger implements Iterable<Map<String, String>> {
16

    
17
	private String name;
18

    
19
	private Resource indexConf;
20

    
21
	@javax.annotation.Resource
22
	private DnetLoggerDao dao;
23

    
24
	@PostConstruct
25
	public void init() {
26
		dao.init(name);
27
		dao.configureIndex(name, DnetLogConfigurationLoader.getIndexedPaths(indexConf));
28
	}
29

    
30
	public LogMessage newLogMessage(final DnetLogLevel level) {
31
		return new LogMessage(dao, name, level);
32
	}
33

    
34
	public LogMessage newLogMessage() {
35
		return newLogMessage(DnetLogLevel.INFO);
36
	}
37

    
38
	public Iterator<Map<String, String>> find(final String key, final String value) {
39
		return dao.find(name, key, value);
40
	}
41

    
42
	public Iterator<Map<String, String>> find(final Map<String, Object> criteria) {
43
		return dao.find(name, criteria);
44
	}
45

    
46
	public Map<String, String> findOne(final String key, final String value) {
47
		return dao.findOne(name, key, value);
48
	}
49

    
50
	@Override
51
	public Iterator<Map<String, String>> iterator() {
52
		return dao.obtainLogIterator(name);
53
	}
54

    
55
	public String getName() {
56
		return name;
57
	}
58

    
59
	@Required
60
	public void setName(final String name) {
61
		this.name = name;
62
	}
63

    
64
	public Resource getIndexConf() {
65
		return indexConf;
66
	}
67

    
68
	public void setIndexConf(final Resource indexConf) {
69
		this.indexConf = indexConf;
70
	}
71

    
72
	public Iterator<Map<String, String>> range(final Date startDate, final Date endDate) {
73
		return dao.findByDateRange(name, startDate, endDate);
74
	}
75

    
76
	public Iterator<Map<String, String>> range(final Date startDate, final Date endDate, final String key, final String value) {
77
		return dao.findByDateRange(name, startDate, endDate, key, value);
78
	}
79

    
80
	public Iterator<Map<String, String>> range(final Date startDate, final Date endDate, final Map<String, Object> criteria) {
81
		return dao.findByDateRange(name, startDate, endDate, criteria);
82
	}
83

    
84
}
(2-2/3)