Java源码示例:com.cloudbees.syslog.Facility
示例1
public SyslogHandler() {
super();
LogManager manager = LogManager.getLogManager();
String cname = getClass().getName();
UdpSyslogMessageSender udpSender = new UdpSyslogMessageSender();
udpSender.setSyslogServerHostname(LogManagerHelper.getStringProperty(manager, cname + ".syslogServerHostname", SyslogMessageSender.DEFAULT_SYSLOG_HOST));
udpSender.setSyslogServerPort(LogManagerHelper.getIntProperty(manager, cname + ".syslogServerPort", SyslogMessageSender.DEFAULT_SYSLOG_PORT));
appName = LogManagerHelper.getStringProperty(manager, cname + ".appName", this.appName);
udpSender.setDefaultAppName(appName);
facility = Facility.fromLabel(LogManagerHelper.getStringProperty(manager, cname + ".facility", this.facility.label()));
udpSender.setDefaultFacility(facility);
severity = Severity.fromLabel(LogManagerHelper.getStringProperty(manager, cname + ".severity", this.severity.label()));
udpSender.setDefaultSeverity(severity);
messageHostname = LogManagerHelper.getStringProperty(manager, cname + ".messageHostname", this.messageHostname);
udpSender.setDefaultMessageHostname(messageHostname);
this.syslogMessageSender = udpSender;
}
示例2
@Ignore
@Test
public void send2() throws Exception {
SyslogMessage msg = new SyslogMessage()
.withAppName("my-app")
.withFacility(Facility.USER)
.withHostname("my-hostname")
.withMsg("my message over tcp éèà " + new Timestamp(System.currentTimeMillis()))
.withSeverity(Severity.INFORMATIONAL)
.withTimestamp(System.currentTimeMillis());
TcpSyslogMessageSender messageSender = new TcpSyslogMessageSender();
messageSender.setSyslogServerHostname("logs2.papertrailapp.com");
messageSender.setSyslogServerPort(46022);
messageSender.setMessageFormat(MessageFormat.RFC_3164);
messageSender.setSsl(true);
System.out.println(msg.toSyslogMessage(messageSender.getMessageFormat()));
messageSender.sendMessage(msg);
}
示例3
@Ignore
@Test
public void sendOverSSL() throws Exception {
SyslogMessage msg = new SyslogMessage()
.withAppName("my-app")
.withFacility(Facility.USER)
.withHostname("my-hostname")
.withMsg("my message over tcp ssl éèà " + new Timestamp(System.currentTimeMillis()))
.withSeverity(Severity.INFORMATIONAL)
.withTimestamp(System.currentTimeMillis());
TcpSyslogMessageSender messageSender = new TcpSyslogMessageSender();
messageSender.setSyslogServerHostname("logs2.papertrailapp.com");
messageSender.setSyslogServerPort(46022);
messageSender.setMessageFormat(MessageFormat.RFC_3164);
messageSender.setSsl(true);
System.out.println(msg.toSyslogMessage(messageSender.getMessageFormat()));
messageSender.sendMessage(msg);
}
示例4
@Override
public void processEvent(Event<JsonObject> evt) {
event = evt;
allEvents.add(event);
LOG.info("Received event, name = "+evt.getEventId() + ", format = " + evt.getFormat() + ", Payload = "+evt.getData().toString());
String eventFormat = QRadarConfig.MSG_FORMAT;
if (eventFormat.equals(MessageFormat.RFC_3164.toString()) || eventFormat.equals(MessageFormat.RFC_5424.toString()))
{
UdpSyslogMessageSender messageSender = new UdpSyslogMessageSender();
messageSender.setDefaultMessageHostname("myhostname"); // some syslog cloud services may use this field to transmit a secret key
messageSender.setDefaultAppName("myapp");
messageSender.setDefaultFacility(Facility.USER);
messageSender.setDefaultSeverity(Severity.INFORMATIONAL);
messageSender.setSyslogServerHostname(QRadarConfig.IP_ADDRESS);
messageSender.setSyslogServerPort(514);
if (eventFormat.equals(MessageFormat.RFC_3164.toString()))
messageSender.setMessageFormat(MessageFormat.RFC_3164); // optional, default is RFC 3164
if (eventFormat.equals(MessageFormat.RFC_5424.toString()))
messageSender.setMessageFormat(MessageFormat.RFC_5424); // optional, default is RFC 3164
// send a Syslog message
try {
messageSender.sendMessage(evt.getData().toString());
LOG.info("Sent event to QRadar.");
System.out.println("Sent event to QRadar");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
示例5
@Test
public void send() throws Exception {
TcpSyslogMessageSender messageSender = new TcpSyslogMessageSender();
messageSender.setDefaultMessageHostname("mysecretkey");
messageSender.setDefaultAppName("myapp");
messageSender.setDefaultFacility(Facility.USER);
messageSender.setDefaultSeverity(Severity.INFORMATIONAL);
messageSender.setSyslogServerHostname("logs2.papertrailapp.com");
messageSender.setSyslogServerPort(46022);
messageSender.setMessageFormat(MessageFormat.RFC_3164);
messageSender.setSsl(true);
messageSender.sendMessage("unit test message over tcp éèà " + getClass() + " - " + new Timestamp(System.currentTimeMillis()));
}
示例6
@Test
public void send() throws Exception {
UdpSyslogMessageSender messageSender = new UdpSyslogMessageSender();
messageSender.setDefaultMessageHostname("mysecretkey");
messageSender.setDefaultAppName("myapp");
messageSender.setDefaultFacility(Facility.USER);
messageSender.setDefaultSeverity(Severity.INFORMATIONAL);
// messageSender.setSyslogServerHostname("cloudbees1.papertrailapp.com");
messageSender.setSyslogServerHostname("127.0.0.1");
messageSender.setSyslogServerPort(18977);
messageSender.sendMessage("unit test message éèà " + getClass() + " - " + new Timestamp(System.currentTimeMillis()));
}
示例7
@Override
protected void write(Record record) throws StageException {
RecordEL.setRecordInContext(elVars, record);
TimeNowEL.setTimeNowInContext(elVars, new Date());
String messageVal;
try {
String hostname = resolveEL(hostnameElEval, elVars, config.hostnameEL, String.class);
Date timestamp = resolveEL(timestampElEval, elVars, config.timestampEL, Date.class);
String facilityStr = resolveEL(facilityEval, elVars, config.facilityEL, String.class);
String severityStr = resolveEL(severityEval, elVars, config.severityEL, String.class);
String appName = resolveEL(appNameElEval, elVars, config.appNameEL, String.class);
String messageId = resolveEL(messageIdElEval, elVars, config.messageIdEL, String.class);
String processId = resolveEL(processIdElEval, elVars, config.processIdEL, String.class);
baos.reset();
DataGenerator generator = generatorService.getGenerator(baos);
generator.write(record);
generator.close();
messageVal = new String(baos.toByteArray());
Facility facility = Facility.fromNumericalCode(Integer.parseInt(facilityStr));
Severity severity = Severity.fromNumericalCode(Integer.parseInt(severityStr));
SyslogMessage message = new SyslogMessage()
.withMsg(messageVal)
.withHostname(hostname)
.withTimestamp(timestamp)
.withFacility(facility)
.withSeverity(severity);
// optional header values
if(!appName.equals("")) {
message.setAppName(appName);
}
if(!messageId.equals("")) {
message.setMsgId(messageId);
}
if(!processId.equals("")) {
message.setProcId(processId);
}
if (config.protocol.equals("TCP")) {
this.tcpSender.sendMessage(message);
} else {
this.udpSender.sendMessage(message);
}
} catch (Exception e) {
throw new OnRecordErrorException(Errors.SYSLOG_01, e);
}
}
示例8
public Facility getFacility() {
return facility;
}
示例9
public void setFacility(Facility facility) {
this.facility = facility;
}
示例10
public static void main(String[] args) throws Exception {
final int THREADS_COUNT = 10;
final int ITERATION_COUNT = 1000;
ExecutorService executorService = Executors.newFixedThreadPool(THREADS_COUNT);
final UdpSyslogMessageSender messageSender = new UdpSyslogMessageSender();
messageSender.setDefaultMessageHostname("mysecretkey");
messageSender.setDefaultAppName("myapp");
messageSender.setDefaultFacility(Facility.USER);
messageSender.setDefaultSeverity(Severity.INFORMATIONAL);
messageSender.setSyslogServerHostname("logs2.papertrailapp.com");
// messageSender.setSyslogServerHostname("127.0.0.1");
messageSender.setSyslogServerPort(46022);
final AtomicInteger count = new AtomicInteger();
for (int i = 0; i < THREADS_COUNT; i++) {
final String prefix = "thread-" + i + "-udp-msg-";
Runnable command = new Runnable() {
@Override
public void run() {
for (int j = 0; j < ITERATION_COUNT; j++) {
try {
messageSender.sendMessage(prefix + j);
} catch (IOException e) {
System.err.println("ERROR in " + prefix);
e.printStackTrace();
break;
}
}
}
};
executorService.execute(command);
}
executorService.shutdown();
executorService.awaitTermination(1, TimeUnit.MINUTES);
System.out.println("sent " + messageSender.getSendCount() + " in " + messageSender.getSendDurationInMillis() + "ms");
System.out.println("bye");
}