标签: syslog

有没有办法将对象强制转换回原始类型而不指定每个案例?

我有一个不同类型对象的数组,我使用BinaryWriter将每个项目转换为二进制等价物,以便我可以通过网络发送结构.

我现在做的事情就像

for ( i=0;i<tmpArrayList.Count;i++)
{
   object x=tmpArrayList[i];
   if (x.GetType() ==  typeof(byte))
   {
      wrt.Write((byte)x);
   }
   ........
Run Code Online (Sandbox Code Playgroud)

问题是,如果错过了一个类型,我的代码将来可能会破坏.

我想做点什么.

object x=tmpArrayList[i];
wrt.Write(x);
Run Code Online (Sandbox Code Playgroud)

但除非我每次演员,否则它不起作用.

编辑:

在查阅答案之后,这就是我想出的功能.为了测试,该函数将数组发送到syslog.

  private void TxMsg(ArrayList TxArray,IPAddress ipaddress)
  {
     Byte[] txbuf=new Byte[0];
     int sz=0;

     // caculate size of txbuf
     foreach (Object o in TxArray)
     {
        if ( o is String ) 
        {
           sz+=((String)(o)).Length;
        }
        else if ( o is Byte[] )
        {
           sz+=((Byte[])(o)).Length;
        }
        else if ( o is Char[] )
        {
           sz+=((Char[])(o)).Length;
        }
        else // take care of …
Run Code Online (Sandbox Code Playgroud)

c# casting syslog udpclient

2
推荐指数
1
解决办法
5096
查看次数

syslog:在 ubuntu 上,如何配置 syslog 文件的轮换和 gzip'ing?

如何在 ubuntu 上配置 syslog 日志文件的轮换?

在我的 /etc/syslog.conf 中,我有这一行:

local1.* /var/log/log.txt

随着时间的推移,出现了以下备份文件:

/var/log/log.txt.0.gz /var/log/log.txt.1.gz

如何配置这些文件的生成频率以及如何清除它们?

unix ubuntu logging syslog

2
推荐指数
1
解决办法
5116
查看次数

我如何捕获每个"set -x"日志到syslog?

情景就是这样

我有一个shell脚本,它运行一些带有不同参数和选项的复杂命令.

这些参数和选项由第三方应用程序传递,这样我可能无法确切知道每次向shell脚本传递的参数和选项

所以为了知道这一点,我在shell脚本的开头使用set -x来查看命令运行的确切内容.我想使用logger将那些调试器消息从set -x移动到syslog.

我用陷阱来做

trap "logger $(BASH_COMMAND)" DEBUG
Run Code Online (Sandbox Code Playgroud)

但是,syslog的输出没有正在运行的确切命令,但是......就像那样......

apple=1
orange=2
command $apple $orange
Run Code Online (Sandbox Code Playgroud)

.............................

但我想要日志的输出应该是

command 1 2 
Run Code Online (Sandbox Code Playgroud)

我怎么能实现?

bash syslog

2
推荐指数
1
解决办法
754
查看次数

使用Python进行Syslog实时监控

我在ubuntu的syslog文件中有日志。我可以查看来自python的新消息,还是始终需要打开/关闭syslog文件?谢谢

python ubuntu logging monitoring syslog

2
推荐指数
1
解决办法
4896
查看次数

Log4j2使用syslog appender和RFC5424

当我尝试将一些消息写入远程Linux系统日志时,我使用log4j2和appender syslog以及format = RFC5424,而BSD.My配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="warn" name="MyApp" packages="">
        <Appenders>
            <Syslog name="bsd" host="9.115.114.133" port="514" protocol="UDP" facility="local5"/>
            <Syslog name="RFC5424" format="RFC5424" host="9.115.114.133" 
                protocol="UDP" appName="MyApp" includeMDC="true"
                 facility="LOCAL5" enterpriseNumber="18060" newLine="true"
                  messageId="Audit" id="App"/>    
         </Appenders>
         <Loggers>
         <Logger name="test.main" level="warn">
         <AppenderRef ref="RFC5424"/>
         </Logger>
         <Root level="error">
        <AppenderRef ref="bsd"/>
        </Root>
        </Loggers>
Run Code Online (Sandbox Code Playgroud)

当我运行一个测试程序,我总是得到错误如下:java.lang.IllegalArgumentException异常:由没有造成结构性ID名称在org.apache.logging.log4j.message.StructuredDataId供给(StructuredDataId.java:92).在org.apache.logging.log4j.core.layout.Rfc5424Layout.(Rfc5424Layout.java:139)在org.apache.logging.log4j.core.layout.Rfc5424Layout.createLayout(Rfc5424Layout.java:657)在org.apache. logging.log4j.core.appender.SyslogAppender.createAppender(SyslogAppender.java:133)... 20更多

2014-11-10 03:21:46,252错误Null对象为Appenders中的Syslog返回 2014-11-10 03:21:46,267错误无法找到记录器test.main的appender RFC5424

我怎么能摆脱这个错误?谢谢.

java linux syslog log4j2

2
推荐指数
1
解决办法
3981
查看次数

PostgreSQL日志到远程logstash服务器

我正在设置日志的收集器。我的应用程序使用SyslogAppender(log4j)将日志发送到远程日志服务器。我还可以使用curl命令行保存所有应用程序日志和postgresql数据库日志。我的日志服务器是ELK服务器(都在同一群集中)。

但是现在我想自动发送postgresql日志,就像处理Appender和应用程序日志一样。是否可以使用postgresql.conf文件执行此操作?还是我必须使用logstash转发器?(如果可能,我希望避免使用转发器)

postgresql logging syslog

2
推荐指数
1
解决办法
2258
查看次数

使用syslog将docker容器日志发送到logstash

可以在docker容器中登录...说位于/ var/log/syslog中的日志是否运送到logstash而不使用任何其他组件,如伐木工人和logspout?

只是想知道,因为我设置了一个环境,并试图使它与syslog一起工作(所以syslog将日志从docker容器发送到logstash)但是现在它不起作用..只是想知道我的逻辑是否有问题.

syslog rsyslog logstash docker

2
推荐指数
1
解决办法
1642
查看次数

rsyslog config仅将原始消息($ msg)存储到文件中

如何仅将原始消息存储到文件中?
例如:
我通过rsyslog收到了一条消息:

收到系统日志消息:

May  4 13:18:47 xxxx apache-error: [Wed May 04 13:18:41.256596 2016] [:error] [pid 54583] [client 192.168.30.200:52638] script '/var/www/aaa.php' not found or unable to stat
Run Code Online (Sandbox Code Playgroud)

我需要一个rsyslog配置来从输入中提取原始消息,而没有syslog标题(以下突出显示):

5月4日13:18:47 xxxx apache-error:[Wed May 04 13:18:41.256596 2016] [:error] [pid 54583] [client 192.168.30.200:52638] script'/var/www/aaa.php'没找到或无法统计

预期产出:

[Wed May 04 13:18:41.256596 2016] [:error] [pid 54583] [client 192.168.30.200:52638] script '/var/www/aaa.php' not found or unable to stat
Run Code Online (Sandbox Code Playgroud)

TNX!

linux logging syslog rsyslog

2
推荐指数
1
解决办法
2923
查看次数

nginx udp proxy pass ip

寻找有关NGINX的一些指导并将源IP地址传递给后端服务器.到目前为止,我已经找到了关于如何为http/s请求执行此操作的配置,而不是针对非HTTP/s端口的TCP/UDP负载平衡.

我有一个UDP代理设置并使用NGINX,但我的应用程序(syslog服务器)中的源IP显示为NGINX,而不是将syslog消息传递给它的设备.

下面是我的配置 - 到目前为止,我正在空手而归,如何从源服务器传递源IP.

    stream {
    server {
        listen 514 udp;
        proxy_pass syslog_standard;
    }

    upstream syslog_standard {
        server syslog1.ars.com:10514 max_fails=1 fail_timeout=10s;
        server syslog2.ars.com:10514 max_fails=1 fail_timeout=10s;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何输入将不胜感激!

proxy udp syslog nginx

2
推荐指数
1
解决办法
6174
查看次数

如何在 Nixos 中跟踪/流式传输系统日志

我在看这里: https: //github.com/NixOS/nixos/blob/master/modules/services/logging/syslogd.nix

我尝试了一个简单的:

tail -f /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

但这会产生:

tail:无法打开“/var/log/syslog”进行读取:没有这样的文件或目录

syslog tail nixos nix

2
推荐指数
1
解决办法
1944
查看次数

标签 统计

syslog ×10

logging ×4

linux ×2

rsyslog ×2

ubuntu ×2

bash ×1

c# ×1

casting ×1

docker ×1

java ×1

log4j2 ×1

logstash ×1

monitoring ×1

nginx ×1

nix ×1

nixos ×1

postgresql ×1

proxy ×1

python ×1

tail ×1

udp ×1

udpclient ×1

unix ×1