读取中兴3G告警log告警文件到集合
1、文件格式
ALARM_ID=102305_404205 EVENT_TIME=-- :: NOTIFICATION_TYPE= MANAGED_OBJECT_INSTANCE=NodeId=,BssId=,BtsId=,RackId= PERCEIVED_SEVERITY= ALARM_TYPE= PROBABLE_CAUSE= SPECIFIC_PROBLEM=直流电压低于47V(RRU干结点监控) ADDITIONAL_TEXT=AlarmCode(),AlarmInfo(The subsystem No. , RRU_INFO=[RRU ID=, Alias=武隆中兴隧道RRU0_江口支局, Type=RRU])
2、创建实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LteAlarmAnalysis.Entities
{
/// <summary>
/// 中兴 3G 告警Ftp下载数据实体
/// 日期 : 2016年8月16日
/// 作者 : 老郑
///
/// ALARM_ID=102301_928516
/// EVENT_TIME=2016-08-16 09:59:35
/// NOTIFICATION_TYPE=5
/// MANAGED_OBJECT_INSTANCE=NodeId=102301,BssId=0,BtsId=38,RackId=2
/// PERCEIVED_SEVERITY=6
/// ALARM_TYPE=4
/// PROBABLE_CAUSE=550
/// SPECIFIC_PROBLEM=直流电压低于51V或交流故障(RRU干结点监控)
/// ADDITIONAL_TEXT=AlarmCode(1005019),AlarmInfo(The subsystem No. is 9, RRU_INFO=[RRU ID=4, Alias=万州石桥毛岭RRU_武陵支局, Type=RRU])
/// </summary>
public class AlarmEntities3GZte
{
public string ALARM_ID { get; set; }
public string EVENT_TIME { get; set; }
public string NOTIFICATION_TYPE { get; set; }
public string MANAGED_OBJECT_INSTANCE { get; set; }
public string PERCEIVED_SEVERITY { get; set; }
public string ALARM_TYPE { get; set; }
public string PROBABLE_CAUSE { get; set; }
public string SPECIFIC_PROBLEM { get; set; }
public string ADDITIONAL_TEXT { get; set; }
}
}
3、数据读取到List集合
/// <summary>
/// 读取告警转换为集合
/// </summary>
private IList<AlarmEntities3GZte> Alarm2AlarmEntities3GZte()
{
IList<AlarmEntities3GZte> list = new List<AlarmEntities3GZte>();
try
{
TaskConfig.SpanTime = Stopwatch.StartNew();
var reAlarmFiles = Directory.GetFiles(TaskConfig.SavePath, TaskConfig.FileMatch);
AlarmEntities3GZte alarm = null;
], Encoding.Default);
foreach (string line in lines)
{
)
{
alarm = new AlarmEntities3GZte();
}
if (line != null && !"".Equals(line.Trim()))
{
alarm = Line2Property(line, alarm);
}
&& alarm != null)
{
list.Add(alarm);
}
}
WriteMessage.PrintMassage(MessageType.Success, String.Format("解析中兴告警文件成功,共解析出小区发生不同告警数据量:{0} 条,总数据量为:{1} 条,共耗时:{2}毫秒"
, list.Count, list.Count, TaskConfig.SpanTime.ElapsedMilliseconds));
}
catch (Exception ex)
{
WriteMessage.PrintMassage(MessageType.Error, String.Format("解析中兴告警文件失败,错误信息:{0}", ex));
Environment.Exit(-);
}
return list;
}
private AlarmEntities3GZte Line2Property(string line, AlarmEntities3GZte alarm)
{
if (alarm == null)
{
alarm = new AlarmEntities3GZte();
}
System.Reflection.PropertyInfo[] properties = alarm.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
)
{
return alarm;
}
foreach (System.Reflection.PropertyInfo item in properties)
{
string name = item.Name;
object value = item.GetValue(alarm, null);
)
{
item.SetValue(alarm, line.Replace(name + "=", ""), null);
break;
}
}
return alarm;
}
读取中兴3G告警log告警文件到集合的更多相关文章
- 2018.2.12 PHP 如何读取一亿行的大文件
PHP 如何读取一亿行的大文件 我们可能在很多场景下需要用 PHP 读取大文件,之后进行处理,如果你没有相关的经验可以看下,希望能给你带来一些启发. 模拟场景 我们有一个 1亿 行,大小大概为 3G ...
- [转]Android输出Log到文件
前言:开发中遇到mx4这款机型Eclipse联调不上,logcat看不了,需要输出生成文件查看调试信息.网上搜了下,功能很完善了.startService和过滤输出信息需要自己添加设置,另外注意添加权 ...
- [转]读取assets目录下的数据库文件
在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中 ...
- Android将Log写入文件
为什么要将Log写入文件 运行应用程序的时候,大多数是不会连接着IDE的: 而当应用程序崩溃时,我们需要收集复现步骤,在设备上复现,并进行Debug: 而由于Android手机的多样性,有些问题是某个 ...
- .net core 读取本地指定目录下的文件
项目需求 asp.net core 读取log目录下的.log文件,.log文件的内容如下: xxx.log ------------------------------------------beg ...
- SpringBoot读取Linux服务器某路径下文件\读取项目Resource下文件
// SpringBoot读取Linux服务器某路径下文件 public String messageToRouted() { File file = null; try { file = Resou ...
- 前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输
HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ...
- 面试题-python 如何读取一个大于 10G 的txt文件?
前言 用python 读取一个大于10G 的文件,自己电脑只有8G内存,一运行就报内存溢出:MemoryError python 如何用open函数读取大文件呢? 读取大文件 首先可以自己先制作一个大 ...
- ubuntu /var/log/下文件介绍
本文简单介绍ubuntu /var/log/下各个日志文件,方便出现错误的时候查询相应的log /var/log/alternatives.log -更新替代信息都记录在这个文件中 /var/lo ...
随机推荐
- spoj 3871 gcd extreme
题目大意给出一个n,求sum(gcd(i,j),<i<j<=n); 可以明显的看出来s[n]=s[n-]+f[n]; f[n]=sum(gcd(i,n),<i<n); 现 ...
- 高级UNIX环境编程7 进程
每个程序都会收到一张环境表 extern char **environ; c程序的存储空间布局: 正文段:共享,只读 初始化数据段:存函数以外的赋值 非初始化数据段(bbs):block starte ...
- C/C++用strncpy()与strstr()分割与匹配查找字符串
最近做题遇到分割与匹配字符串的题目(hdu5311),看来别人的代码,才知道有strncpy()和strstr()函数,于是搜集了一点资料,记录一下基本用法. 一.strncpy() char * s ...
- 最小生成树Prim算法
文章作者:甘航 文章来源:http://www.cnblogs.com/ganhang-acm/转载请注明,谢谢合作. 由于数据结构老师布置的一道题 ,我看prim算法看了半天还是一知半解. 在浏览 ...
- stm32之PWM
PWM是pulse width modulation的缩写,即脉冲宽度调制.其通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形: 1.PWM是一种对模拟信号电平进行数字编码的方法.通过高分辨率计 ...
- python文件I/O
file = open(filename,mode) ,python使用open或者file:打开文件,打开文件有几种模式,譬如酱紫: test = open(“txt.txt”,”w”),更多的参数 ...
- AFNetworking 3.0x版本最新特性
AFNetworking是一款在OS X和iOS下都令人喜爱的网络库.为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持. ...
- linux添加、修改环境变量
比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.In shell: setenv <path_to_append>: $ENVNAME setenv PATH ...
- BZOJ 1096: [ZJOI2007]仓库建设( dp + 斜率优化 )
dp(v) = min(dp(p)+cost(p,v))+C(v) 设sum(v) = ∑pi(1≤i≤v), cnt(v) = ∑pi*xi(1≤i≤v), 则cost(p,v) = x(v)*(s ...
- java--String方法
String : 字符串类型 一.构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. ...