Project

General

Profile

1
package eu.dnetlib.common.logging;
2

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

    
8
import javax.annotation.PostConstruct;
9

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

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

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

    
18
	private String name;
19

    
20
	private Resource indexConf;
21

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

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

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

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

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

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

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

    
51
	public Iterator<Map<String, String>> find(final String cql, final List<String> fields) {
52
		return dao.find(name, cql, fields);
53
	}
54

    
55
	@Override
56
	public Iterator<Map<String, String>> iterator() {
57
		return dao.obtainLogIterator(name);
58
	}
59

    
60
	public String getName() {
61
		return name;
62
	}
63

    
64
	@Required
65
	public void setName(final String name) {
66
		this.name = name;
67
	}
68

    
69
	public Resource getIndexConf() {
70
		return indexConf;
71
	}
72

    
73
	public void setIndexConf(final Resource indexConf) {
74
		this.indexConf = indexConf;
75
	}
76

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

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

    
85
	public Iterator<Map<String, String>> range(final Date startDate, final Date endDate, final Map<String, Object> criteria) {
86
		return dao.findByDateRange(name, startDate, endDate, criteria);
87
	}
88

    
89
}
(2-2/3)