zoukankan      html  css  js  c++  java
  • 网站日志解析后并生成可读文件


    public class ObjectOutTest {
    ///* 将对象写入文件方法 */
    //public void write(Object o, String path) {
    // try {
    // /* 创建存取文件 */
    // FileOutputStream fileStream = new FileOutputStream(path);
    // /* 将存取文件写入对象 */
    // ObjectOutputStream os = new ObjectOutputStream(fileStream);
    // /* 写入对象 */
    // os.writeObject(o);
    // System.out.println("写入数据成功");
    // /* 关闭ObjectOutputStream */
    // os.close();
    // } catch (FileNotFoundException e) {
    // e.printStackTrace();
    // } catch (IOException e) {
    // e.printStackTrace();
    // }
    //}
    ///* 将对象从文件中读出来 */
    //public void read(String path) {
    // try {
    // /* 连接到要读取的文件 */
    // FileInputStream fileStream = new FileInputStream(path);
    // /* 怎样读取连接到的文件 */
    // ObjectInputStream os = new ObjectInputStream(fileStream);
    // /* 读取对象 */
    // LogObject dog = (LogObject) os.readObject();
    // System.out.println("输出结果:" + dog.getFrom() + " is a "
    // + dog.getIp() + ",高:" + dog.getUrl() + ",长:");
    // /* 关闭对象 */
    // os.close();
    // } catch (FileNotFoundException e) {
    // e.printStackTrace();
    // } catch (IOException e) {
    // e.printStackTrace();
    // } catch (ClassNotFoundException e) {
    // e.printStackTrace();
    // }
    //}
    /* 往文件写入字符串 */
    public void wirteString(String path, String context) {
    try {
    /* 创建写入对象 */
    FileWriter fileWriter = new FileWriter(path,true);
    /* 创建缓冲区 */
    BufferedWriter writer = new BufferedWriter(fileWriter);
    /* 写入字符串 */
    writer.write(" "+context);
    /* 关掉对象 */
    writer.close();
    System.out.println("写入字符串成功!");
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    /* 读取文件中的字符串 */
    public void readString(String path) {
    try {
    /* 创建读取对象 */
    FileReader fileReader = new FileReader(path);
    /* 创建缓存区 */
    BufferedReader reader = new BufferedReader(fileReader);
    /* 读取文件 */
    String line = null;
    while ((line = reader.readLine()) != null) {
    String s[]=line.split(" ");
    String str1="";
    for(int i=0;i<s.length;i++){
    if(i==0||i==3||i==6||i==10){
    if(i==0){
    str1+="ip:"+"--"+s[i]+" ";
    }
    if(i==3){
    str1+="访问时间:"+"--"+s[i]+" ";
    }
    if(i==6){
    str1+="url:"+"--"+s[i]+" ";
    }
    if(i==10){
    if(s[10].contains("baidu.com")){
    str1+="站外(百度竞价):"+"--"+s[i]+" ";
    }else{
    str1+="内部:"+"--"+s[i]+" ";
    }

    }
    //内部 百度竞价 直接访问 站外

    }

    //System.out.println(str1);
    }
    if(s[6].contains(".jpg")||s[6].contains(".png")||s[6].contains(".ico")||s[6].contains("/app/api")||s[6].contains(".gif")||s[6].contains(".css")||s[6].contains(".js")){
    }else{
    ObjectOutTest qqt = new ObjectOutTest();
    Date date=new Date();
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    String s1=sdf.format(date);
    qqt.wirteString("/home/data/htdocs/web/log/"+s1+".csv", str1);
    }

    }

    /* 关闭对象 */
    reader.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    /* 出函数入口 */
    public static void main(String args[]) {
    ObjectOutTest qqt = new ObjectOutTest();
    Date date=new Date();
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    String s=sdf.format(date);
    qqt.readString("/home/logsplit/"+s);


    }
    }

    写完方法生成 jar包,再将jar包放到线上,同时写一个运行jar包的脚本。

    cd /home/timer/
    export JAVA_HOME=/opt/jdk7
    export CLASSPATH=.:$CLASSPATH:/home/timer/rizhijiexi.jar:
    export PATH=$JAVA_HOME/bin:$PATH

    java -Xms256m -Xmx512m com.ObjectOutTest >>/home/logsplit/ObjectOut.log &
    将 运行脚本文件放在 /opt/shell 下

    然后 

    运行 crontab -e 再输入 O  即可插入定时启动脚本的命令

  • 相关阅读:
    EF多个上下文迁移
    Ruby知识点三:运算符
    Ruby知识点二:类
    不用搭环境的10分钟AngularJS指令简易入门01(含例子)
    JavaScript DOM编程艺术第二版学习(1/4)
    VisualStudio2013&VS2015内置SQLServer入门 (三)
    VisualStudio2015内置LocalDB
    VisualStudio2013内置SQLServer入门
    Java反射学习(java reflect)(三)
    Java反射学习(java reflect)(二)
  • 原文地址:https://www.cnblogs.com/master-zxc/p/6478042.html
Copyright © 2011-2022 走看看