├── .gitattributes ├── Database.sql ├── Images ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png └── 8.png ├── README.md ├── go.mod ├── go.sum ├── logAgent ├── conf │ └── logAgent.conf ├── kafka │ └── kafka.go ├── logs │ └── my.log ├── main │ ├── config.go │ ├── etcd.go │ ├── ip.go │ ├── log.go │ ├── main.go │ └── server.go ├── tailf │ └── tail.go └── tools │ └── SetConf │ └── main.go ├── logBeegoWeb ├── conf │ └── app.conf ├── controller │ ├── AppController │ │ └── app.go │ └── LogController │ │ └── log.go ├── go.mod ├── go.sum ├── main │ └── main.go ├── model │ ├── app.go │ └── log.go ├── router │ └── router.go ├── static │ ├── css │ │ ├── DT_bootstrap.css │ │ ├── about-us.css │ │ ├── animate.css │ │ ├── blog.css │ │ ├── blue.css │ │ ├── bootstrap-fileupload.css │ │ ├── bootstrap-modal.css │ │ ├── bootstrap-responsive.min.css │ │ ├── bootstrap-responsive1.min.css │ │ ├── bootstrap-tag.css │ │ ├── bootstrap-toggle-buttons.css │ │ ├── bootstrap-tree.css │ │ ├── bootstrap-wysihtml5.css │ │ ├── bootstrap.min.css │ │ ├── brown.css │ │ ├── chosen.css │ │ ├── clockface.css │ │ ├── colorpicker.css │ │ ├── coming-soon.css │ │ ├── datepicker.css │ │ ├── daterangepicker.css │ │ ├── datetimepicker.css │ │ ├── default.css │ │ ├── dropzone.css │ │ ├── email.css │ │ ├── error.css │ │ ├── font-awesome.css │ │ ├── font-awesome.min.css │ │ ├── fullcalendar.css │ │ ├── glyphicons.css │ │ ├── grey.css │ │ ├── halflings.css │ │ ├── inbox.css │ │ ├── invoice.css │ │ ├── jquery-ui-1.10.1.custom.min.css │ │ ├── jquery.easy-pie-chart.css │ │ ├── jquery.fancybox.css │ │ ├── jquery.fileupload-ui.css │ │ ├── jquery.gritter.css │ │ ├── jquery.nestable.css │ │ ├── jquery.tagsinput.css │ │ ├── jquery.ui.slider.css │ │ ├── jqvmap.css │ │ ├── light.css │ │ ├── lock.css │ │ ├── login-soft.css │ │ ├── login.css │ │ ├── multi-select-metro.css │ │ ├── news.css │ │ ├── pricing-tables.css │ │ ├── print.css │ │ ├── profile.css │ │ ├── promo.css │ │ ├── purple.css │ │ ├── search.css │ │ ├── select2_metro.css │ │ ├── style-metro.css │ │ ├── style-non-responsive.css │ │ ├── style-responsive.css │ │ ├── style.css │ │ ├── timeline.css │ │ ├── timepicker.css │ │ └── uniform.default.css │ ├── image │ │ ├── 1.jpg │ │ ├── 10.jpg │ │ ├── 11.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ ├── 8.jpg │ │ ├── 9.jpg │ │ ├── KwPYo.jpg │ │ ├── alpha.png │ │ ├── amazon.png │ │ ├── animated-overlay.gif │ │ ├── avatar.png │ │ ├── avatar1.jpg │ │ ├── avatar1_small.jpg │ │ ├── avatar2.jpg │ │ ├── avatar3.jpg │ │ ├── behance.png │ │ ├── bg-input-focus.png │ │ ├── bg-input.png │ │ ├── bg-opacity.png │ │ ├── bg-white-lock.png │ │ ├── bg │ │ │ ├── 1.jpg │ │ │ ├── 2.jpg │ │ │ ├── 3.jpg │ │ │ └── 4.jpg │ │ ├── blank.gif │ │ ├── blogger.png │ │ ├── bstree-halflings.png │ │ ├── chosen-sprite.png │ │ ├── css │ │ ├── datatable-row-openclose.png │ │ ├── deviantart.png │ │ ├── dribbble.png │ │ ├── dropbox.png │ │ ├── earth.jpg │ │ ├── evernote.png │ │ ├── facebook.png │ │ ├── fancybox_loading.gif │ │ ├── fancybox_overlay.png │ │ ├── fancybox_sprite.png │ │ ├── favicon.ico │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── forrst.png │ │ ├── github.png │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ ├── glyphicons-regular.eot │ │ ├── glyphicons-regular.svg │ │ ├── glyphicons-regular.ttf │ │ ├── glyphicons-regular.woff │ │ ├── glyphicons-white.png │ │ ├── glyphicons-white.svg │ │ ├── glyphicons.png │ │ ├── glyphicons_halflings-white.png │ │ ├── glyphicons_halflings-white.svg │ │ ├── glyphicons_halflings.png │ │ ├── glyphicons_halflings.svg │ │ ├── glyphiconshalflings-regular.eot │ │ ├── glyphiconshalflings-regular.svg │ │ ├── glyphiconshalflings-regular.ttf │ │ ├── glyphiconshalflings-regular.woff │ │ ├── googleplus.png │ │ ├── gritter-light.png │ │ ├── gritter.png │ │ ├── hor-menu-search-close-white.png │ │ ├── hor-menu-search-close.png │ │ ├── hor-menu-search.png │ │ ├── hue.png │ │ ├── icon-color-close.png │ │ ├── icon-color.png │ │ ├── icon-img-down.png │ │ ├── icon-img-up.png │ │ ├── ie-spacer.gif │ │ ├── image1.jpg │ │ ├── image2.jpg │ │ ├── image3.jpg │ │ ├── image4.jpg │ │ ├── image5.jpg │ │ ├── img1.png │ │ ├── img1_2.png │ │ ├── img2.png │ │ ├── img3.png │ │ ├── img4.png │ │ ├── inbox-nav-arrow-blue.png │ │ ├── instagram.png │ │ ├── iphone.png │ │ ├── item_img.jpg │ │ ├── item_img1.jpg │ │ ├── jolicloud.png │ │ ├── js │ │ ├── last-fm.png │ │ ├── linkedin.png │ │ ├── loading.gif │ │ ├── logo-big.png │ │ ├── logo.png │ │ ├── logo_azteca.jpg │ │ ├── logo_conquer.jpg │ │ ├── logo_metronic.jpg │ │ ├── menu-toggler.png │ │ ├── overlay-icon.png │ │ ├── photo1.jpg │ │ ├── photo2.jpg │ │ ├── photo3.jpg │ │ ├── photo4.jpg │ │ ├── photo5.jpg │ │ ├── photo6.jpg │ │ ├── picasa.png │ │ ├── pintrest.png │ │ ├── portlet-collapse-icon-white.png │ │ ├── portlet-collapse-icon.png │ │ ├── portlet-config-icon-white.png │ │ ├── portlet-config-icon.png │ │ ├── portlet-expand-icon-white.png │ │ ├── portlet-expand-icon.png │ │ ├── portlet-reload-icon-white.png │ │ ├── portlet-reload-icon.png │ │ ├── portlet-remove-icon-white.png │ │ ├── portlet-remove-icon.png │ │ ├── preview_02.png │ │ ├── preview_03.png │ │ ├── preview_04.png │ │ ├── preview_05.png │ │ ├── preview_06.png │ │ ├── preview_07.png │ │ ├── preview_08.png │ │ ├── preview_09.png │ │ ├── preview_10.png │ │ ├── preview_11.png │ │ ├── preview_12.png │ │ ├── preview_13.png │ │ ├── preview_14.png │ │ ├── preview_15.png │ │ ├── preview_16.png │ │ ├── preview_17.png │ │ ├── profile-img.png │ │ ├── profile.jpg │ │ ├── progressbar.gif │ │ ├── remove-icon-small.png │ │ ├── rss.png │ │ ├── saturation.png │ │ ├── search-icon.png │ │ ├── select2-spinner.gif │ │ ├── select2.png │ │ ├── select2x2.png │ │ ├── sidebar-menu-arrow.png │ │ ├── sidebar-search-close.png │ │ ├── sidebar-toggler.jpg │ │ ├── skype.png │ │ ├── social_facebook.png │ │ ├── social_googleplus.png │ │ ├── social_linkedin.png │ │ ├── social_rss.png │ │ ├── social_twitter.png │ │ ├── sort_asc.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ ├── sort_desc_disabled.png │ │ ├── spotify.png │ │ ├── sprite.png │ │ ├── spritemap.png │ │ ├── spritemap@2x.png │ │ ├── stumbleupon.png │ │ ├── switch.png │ │ ├── syncfusion-icons-white.png │ │ ├── syncfusion-icons.png │ │ ├── tumblr.png │ │ ├── twitter.png │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ │ ├── ui-bg_flat_10_000000_40x100.png │ │ ├── ui-bg_glass_100_f6f6f6_1x400.png │ │ ├── ui-bg_glass_100_fdf5ce_1x400.png │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png │ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png │ │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_228ef1_256x240.png │ │ ├── ui-icons_888888_256x240.png │ │ ├── ui-icons_ef8c08_256x240.png │ │ ├── ui-icons_ffd27a_256x240.png │ │ ├── ui-icons_ffffff_256x240.png │ │ ├── vimeo.png │ │ ├── vk.png │ │ ├── walmart.png │ │ ├── wordpress.png │ │ ├── xing.png │ │ ├── yahoo.png │ │ └── youtube.png │ └── js │ │ ├── DT_bootstrap.js │ │ ├── additional-methods.min.js │ │ ├── app.js │ │ ├── bootstrap-colorpicker.js │ │ ├── bootstrap-datepicker.js │ │ ├── bootstrap-datetimepicker.js │ │ ├── bootstrap-fileupload.js │ │ ├── bootstrap-modal.js │ │ ├── bootstrap-modalmanager.js │ │ ├── bootstrap-rtl.min.js │ │ ├── bootstrap-tag.js │ │ ├── bootstrap-timepicker.js │ │ ├── bootstrap-tree.js │ │ ├── bootstrap-wysihtml5.js │ │ ├── bootstrap.min.js │ │ ├── breakpoints.js │ │ ├── breakpoints.min.js │ │ ├── calendar.js │ │ ├── canvas-to-blob.min.js │ │ ├── charts.js │ │ ├── chosen.jquery.min.js │ │ ├── ckeditor.js │ │ ├── clockface.js │ │ ├── coming-soon.js │ │ ├── contact-us.js │ │ ├── date.js │ │ ├── daterangepicker.js │ │ ├── dropzone.js │ │ ├── excanvas.js │ │ ├── excanvas.min.js │ │ ├── form-components.js │ │ ├── form-fileupload.js │ │ ├── form-samples.js │ │ ├── form-validation.js │ │ ├── form-wizard.js │ │ ├── fullcalendar.min.js │ │ ├── gallery.js │ │ ├── gmaps.js │ │ ├── inbox.js │ │ ├── index.js │ │ ├── jquery-1.10.1.min.js │ │ ├── jquery-1.8.3.min.js │ │ ├── jquery-migrate-1.2.1.min.js │ │ ├── jquery-ui-1.10.1.custom.min.js │ │ ├── jquery.backstretch.min.js │ │ ├── jquery.blockui.min.js │ │ ├── jquery.bootpag.min.js │ │ ├── jquery.bootstrap.wizard.min.js │ │ ├── jquery.cookie.min.js │ │ ├── jquery.countdown.js │ │ ├── jquery.dataTables.js │ │ ├── jquery.dataTables.min.js │ │ ├── jquery.easy-pie-chart.js │ │ ├── jquery.fancybox.pack.js │ │ ├── jquery.fileupload-fp.js │ │ ├── jquery.fileupload-ui.js │ │ ├── jquery.fileupload.js │ │ ├── jquery.flot.crosshair.js │ │ ├── jquery.flot.js │ │ ├── jquery.flot.pie.js │ │ ├── jquery.flot.resize.js │ │ ├── jquery.flot.stack.js │ │ ├── jquery.gritter.js │ │ ├── jquery.iframe-transport.js │ │ ├── jquery.input-ip-address-control-1.0.min.js │ │ ├── jquery.inputmask.bundle.min.js │ │ ├── jquery.knob.js │ │ ├── jquery.multi-select.js │ │ ├── jquery.nestable.js │ │ ├── jquery.pulsate.min.js │ │ ├── jquery.slimscroll.min.js │ │ ├── jquery.sparkline.min.js │ │ ├── jquery.tagsinput.min.js │ │ ├── jquery.toggle.buttons.js │ │ ├── jquery.ui.widget.js │ │ ├── jquery.uniform.min.js │ │ ├── jquery.validate.min.js │ │ ├── jquery.vmap.europe.js │ │ ├── jquery.vmap.germany.js │ │ ├── jquery.vmap.js │ │ ├── jquery.vmap.russia.js │ │ ├── jquery.vmap.sampledata.js │ │ ├── jquery.vmap.usa.js │ │ ├── jquery.vmap.world.js │ │ ├── jquery.xdr-transport.js │ │ ├── load-image.min.js │ │ ├── lock.js │ │ ├── login-soft.js │ │ ├── login.js │ │ ├── maps-google.js │ │ ├── maps-vector.js │ │ ├── portlet-draggable.js │ │ ├── respond.js │ │ ├── respond.min.js │ │ ├── search.js │ │ ├── select2.min.js │ │ ├── table-advanced.js │ │ ├── table-editable.js │ │ ├── table-managed.js │ │ ├── tmpl.min.js │ │ ├── ui-general.js │ │ ├── ui-jqueryui.js │ │ ├── ui-modals.js │ │ ├── ui-nestable.js │ │ ├── ui-sliders.js │ │ ├── ui-tree.js │ │ └── wysihtml5-0.3.0.js └── views │ ├── app │ ├── apply.html │ ├── error.html │ └── index.html │ ├── layout │ └── layout.html │ └── log │ ├── apply.html │ ├── error.html │ └── index.html └── logTransfer ├── config └── logTransfer.conf ├── es └── elasticsearch.go ├── logs └── my.log └── main ├── config.go ├── kafka.go ├── log.go ├── main.go └── run.go /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=go 2 | *.html linguist-language=go 3 | *.css linguist-language=go -------------------------------------------------------------------------------- /Database.sql: -------------------------------------------------------------------------------- 1 | create database logCollect; 2 | 3 | create table tbl_app_info( 4 | app_id int auto_increment primary key, 5 | app_name varchar(1024) not null, 6 | app_type varchar(64) not null, 7 | create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 8 | develop_path varchar(256) not null 9 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 10 | 11 | create table tbl_app_ip( 12 | app_id int, 13 | ip varchar(64), 14 | Key app_id_ip_index (app_id, ip) 15 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 16 | 17 | create table tbl_log_info( 18 | log_id int auto_increment primary key, 19 | app_id varchar(1024) not null, 20 | log_path varchar(64) not null, 21 | topic varchar(1024) not null, 22 | create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 23 | status tinyint default 1 24 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 25 | -------------------------------------------------------------------------------- /Images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/1.png -------------------------------------------------------------------------------- /Images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/2.png -------------------------------------------------------------------------------- /Images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/3.png -------------------------------------------------------------------------------- /Images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/4.png -------------------------------------------------------------------------------- /Images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/5.png -------------------------------------------------------------------------------- /Images/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/6.png -------------------------------------------------------------------------------- /Images/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/7.png -------------------------------------------------------------------------------- /Images/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/Images/8.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 海量日志收集服务logCollect 2 | 3 | ## 项目架构图 4 | ![项目架构图](./Images/1.png) 5 | 6 | ## 说明 7 | logAgent从通过tailf从Etcd中获取要收集的日志信息从业务服务器读取日志信息,发往Kafka 8 | 9 | logTransfer负责从Kafka读取日志,写入到Elasticsearch中 10 | 11 | 通过Kibana进行日志检索 12 | 13 | 最后通过Web界面控制Etcd管理日志配置 14 | 15 | ------- 16 | 17 | ## logAgent 18 | ![logAgent架构](./Images/2.png) 19 | 20 | ### logAgent主要实现的功能 21 | - 可以自行配置要收集的日志文件 22 | 23 | - 从Etcd中获取日志收集项 24 | 25 | - 读取日志文件 26 | 27 | - 写入到Kafka中 28 | 29 | - logAgent可以同时运行多个日志收集任务 30 | 31 | - 实现实时配置项变更 32 | 33 | - 根据当前服务器的IP地址获取配置项 34 | 35 | ### 博客讲解 36 | 37 | [Golang实战之海量日志收集系统(一)项目背景介绍](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E4%B8%80%EF%BC%89%E9%A1%B9%E7%9B%AE%E8%83%8C%E6%99%AF%E4%BB%8B%E7%BB%8D/) 38 | 39 | [Golang实战之海量日志收集系统(二)收集应用程序日志到Kafka中](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E4%BA%8C%EF%BC%89%E6%94%B6%E9%9B%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%A5%E5%BF%97%E5%88%B0Kafka%E4%B8%AD/) 40 | 41 | [Golang实战之海量日志收集系统(三)简单版本logAgent的实现](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E4%B8%89%EF%BC%89%E7%AE%80%E5%8D%95%E7%89%88%E6%9C%AClogAgent%E7%9A%84%E5%AE%9E%E7%8E%B0/) 42 | 43 | [Golang实战之海量日志收集系统(四)etcd介绍与使用etcd获取配置信息](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E5%9B%9B%EF%BC%89etcd%E4%BB%8B%E7%BB%8D%E4%B8%8E%E4%BD%BF%E7%94%A8etcd%E8%8E%B7%E5%8F%96%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF/) 44 | 45 | [Golang实战之海量日志收集系统(五)根据etcd配置项创建多个tailTask](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E4%BA%94%EF%BC%89%E6%A0%B9%E6%8D%AEetcd%E9%85%8D%E7%BD%AE%E9%A1%B9%E5%88%9B%E5%BB%BA%E5%A4%9A%E4%B8%AAtailTask/) 46 | 47 | [Golang实战之海量日志收集系统(六)监视etcd配置项的变更](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E5%85%AD%EF%BC%89%E7%9B%91%E8%A7%86etcd%E9%85%8D%E7%BD%AE%E9%A1%B9%E7%9A%84%E5%8F%98%E6%9B%B4/) 48 | 49 | ## logTransfer 50 | 51 | 项目架构图: 52 | 53 | ![logTransfer架构](./Images/3.png) 54 | 55 | 项目逻辑图: 56 | 57 | ![logTransfer架构](./Images/4.png) 58 | 59 | ### logTransfer主要实现的功能 60 | 61 | - 将日志数据写入到Kafka中 62 | 63 | - 将消费的数据落地到Elastciseartch中 64 | 65 | - 通过Kibana进行展示 66 | 67 | 68 | ### 博客讲解 69 | 70 | [Golang实战之海量日志收集系统(七)logTransfer之从kafka中获取日志信息 ](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E4%B8%83%EF%BC%89logTransfer%E4%B9%8B%E4%BB%8Ekafka%E4%B8%AD%E8%8E%B7%E5%8F%96%E6%97%A5%E5%BF%97%E4%BF%A1%E6%81%AF/) 71 | 72 | [Golang实战之海量日志收集系统(八)logTransfer之将日志入库到Elasticsearch并通过Kibana进行展示 ](https://plutoacharon.github.io/2020/03/29/Golang%E5%AE%9E%E6%88%98%E4%B9%8B%E6%B5%B7%E9%87%8F%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E7%B3%BB%E7%BB%9F%EF%BC%88%E5%85%AB%EF%BC%89logTransfer%E4%B9%8B%E5%B0%86%E6%97%A5%E5%BF%97%E5%85%A5%E5%BA%93%E5%88%B0Elasticsearch%E5%B9%B6%E9%80%9A%E8%BF%87Kibana%E8%BF%9B%E8%A1%8C%E5%B1%95%E7%A4%BA/) 73 | 74 | ## logBeegoWeb 75 | 76 | http://localhost:8080/index 77 | 78 | 项目管理: 79 | 80 | ![](./Images/5.png) 81 | 82 | 项目申请: 83 | 84 | ![](./Images/6.png) 85 | 86 | 87 | 日志列表: 88 | 89 | ![](./Images/7.png) 90 | 91 | 92 | 日志申请: 93 | ![](./Images/8.png) 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module logCollect 2 | 3 | go 1.14 4 | 5 | require ( 6 | github.com/Shopify/sarama v1.26.1 7 | github.com/astaxie/beego v1.12.1 8 | github.com/coreos/etcd v3.3.19+incompatible // indirect 9 | github.com/coreos/go-semver v0.3.0 // indirect 10 | github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect 11 | github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect 12 | github.com/fsnotify/fsnotify v1.4.9 // indirect 13 | github.com/golang/protobuf v1.3.5 // indirect 14 | github.com/google/uuid v1.1.1 // indirect 15 | github.com/hpcloud/tail v1.0.0 16 | github.com/olivere/elastic/v7 v7.0.13 17 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect 18 | go.uber.org/zap v1.14.1 // indirect 19 | golang.org/x/net v0.0.0-20200320220750-118fecf932d8 // indirect 20 | golang.org/x/sys v0.0.0-20200321134203-328b4cd54aae // indirect 21 | google.golang.org/grpc v1.26.0 // indirect 22 | gopkg.in/fsnotify.v1 v1.4.7 // indirect 23 | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect 24 | ) 25 | -------------------------------------------------------------------------------- /logAgent/conf/logAgent.conf: -------------------------------------------------------------------------------- 1 | [logs] 2 | log_level = debug 3 | log_path = E:\\Go\\logCollect\\logAgent\\logs\\my.log 4 | chan_size = 100 5 | 6 | 7 | [kafka] 8 | server_addr = 0.0.0.0:9092 9 | 10 | [etcd] 11 | addr = 0.0.0.0:2379 12 | configKey= /backend/logagent/config/ -------------------------------------------------------------------------------- /logAgent/kafka/kafka.go: -------------------------------------------------------------------------------- 1 | package kafka 2 | 3 | import ( 4 | "github.com/Shopify/sarama" 5 | "github.com/astaxie/beego/logs" 6 | ) 7 | 8 | var ( 9 | client sarama.SyncProducer 10 | ) 11 | 12 | func InitKafka(addr string) (err error) { 13 | 14 | // Kafka生产者配置 15 | config := sarama.NewConfig() 16 | config.Producer.RequiredAcks = sarama.WaitForAll // 发送完数据需要leader和follow都确认 17 | config.Producer.Partitioner = sarama.NewRandomPartitioner // 新选出⼀个partition 18 | config.Producer.Return.Successes = true // 成功交付的消息将在success channel返回 19 | 20 | // 新建一个生产者对象 21 | client, err = sarama.NewSyncProducer([]string{addr}, config) 22 | if err != nil { 23 | logs.Error("初识化Kafka producer失败:", err) 24 | return 25 | } 26 | logs.Debug("初始化Kafka producer成功,地址为:", addr) 27 | return 28 | } 29 | 30 | func SendToKafka(data, topic string) (err error) { 31 | 32 | msg := &sarama.ProducerMessage{} 33 | msg.Topic = topic 34 | msg.Value = sarama.StringEncoder(data) 35 | 36 | pid, offset, err := client.SendMessage(msg) 37 | 38 | if err != nil { 39 | logs.Error("发送信息失败, err:%v, data:%v, topic:%v", err, data, topic) 40 | return 41 | } 42 | 43 | logs.Debug("read success, pid:%v, offset:%v, topic:%v\n", pid, offset, topic) 44 | return 45 | } 46 | -------------------------------------------------------------------------------- /logAgent/main/config.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/astaxie/beego/config" 6 | "logCollect/logAgent/tailf" 7 | ) 8 | 9 | var ( 10 | logConfig *Config 11 | ) 12 | 13 | // 日志配置 14 | type Config struct { 15 | logLevel string 16 | logPath string 17 | 18 | chanSize int 19 | KafkaAddr string 20 | collectConf []tailf.CollectConf 21 | 22 | etcdAddr string 23 | etcdKey string 24 | } 25 | 26 | //// 日志收集配置 27 | //func loadCollectConf(conf config.Configer) (err error) { 28 | // var c tailf.CollectConf 29 | // 30 | // c.LogPath = conf.String("collect::log_path") 31 | // if len(c.LogPath) == 0 { 32 | // err = errors.New("无效的 collect::log_path ") 33 | // return 34 | // } 35 | // 36 | // c.Topic = conf.String("collect::topic") 37 | // if len(c.Topic) == 0 { 38 | // err = errors.New("无效的 collect::topic ") 39 | // return 40 | // } 41 | // 42 | // logConfig.collectConf = append(logConfig.collectConf, c) 43 | // return 44 | //} 45 | 46 | // 导入初始化配置 47 | func loadInitConf(confType, filename string) (err error) { 48 | conf, err := config.NewConfig(confType, filename) 49 | if err != nil { 50 | fmt.Printf("初始化配置文件出错:%v\n", err) 51 | return 52 | } 53 | // 导入配置信息 54 | logConfig = &Config{} 55 | // 日志级别 56 | logConfig.logLevel = conf.String("logs::log_level") 57 | if len(logConfig.logLevel) == 0 { 58 | logConfig.logLevel = "debug" 59 | } 60 | // 日志输出路径 61 | logConfig.logPath = conf.String("logs::log_path") 62 | if len(logConfig.logPath) == 0 { 63 | logConfig.logPath = "E:\\Go\\logagent\\logs\\my.log" 64 | } 65 | 66 | // 管道大小 67 | logConfig.chanSize, err = conf.Int("logs::chan_size") 68 | if err != nil { 69 | logConfig.chanSize = 100 70 | } 71 | 72 | // Kafka 73 | logConfig.KafkaAddr = conf.String("kafka::server_addr") 74 | if len(logConfig.KafkaAddr) == 0 { 75 | err = fmt.Errorf("初识化Kafka失败") 76 | return 77 | } 78 | 79 | // etcd 80 | logConfig.etcdAddr = conf.String("etcd::addr") 81 | if len(logConfig.etcdAddr) == 0 { 82 | err = fmt.Errorf("初识化etcd addr失败") 83 | return 84 | } 85 | 86 | logConfig.etcdKey = conf.String("etcd::configKey") 87 | if len(logConfig.etcdKey) == 0 { 88 | err = fmt.Errorf("初识化etcd configKey失败") 89 | return 90 | } 91 | 92 | //err = loadCollectConf(conf) 93 | //if err != nil { 94 | // fmt.Printf("导入日志收集配置错误:%v", err) 95 | // return 96 | //} 97 | return 98 | } 99 | -------------------------------------------------------------------------------- /logAgent/main/etcd.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "encoding/json" 6 | "fmt" 7 | "github.com/astaxie/beego/logs" 8 | "github.com/coreos/etcd/clientv3" 9 | "github.com/coreos/etcd/mvcc/mvccpb" 10 | "logCollect/logAgent/tailf" 11 | "strings" 12 | "time" 13 | ) 14 | 15 | type EtcdClient struct { 16 | client *clientv3.Client 17 | keys []string 18 | } 19 | 20 | var ( 21 | etcdClient *EtcdClient 22 | ) 23 | 24 | func initEtcd(addr string, key string) (collectConf []tailf.CollectConf, err error) { 25 | // 初始化连接etcd 26 | cli, err := clientv3.New(clientv3.Config{ 27 | //Endpoints: []string{"localhost:2379", "localhost:22379", "localhost:32379"}, 28 | Endpoints: []string{addr}, 29 | DialTimeout: 5 * time.Second, 30 | }) 31 | if err != nil { 32 | logs.Error("连接etcd失败:", err) 33 | return 34 | } 35 | 36 | etcdClient = &EtcdClient{ 37 | client: cli, 38 | } 39 | 40 | // 如果Key不是以"/"结尾, 则自动加上"/" 41 | if strings.HasSuffix(key, "/") == false { 42 | key = key + "/" 43 | } 44 | 45 | for _, ip := range localIPArray { 46 | etcdKey := fmt.Sprintf("%s%s", key, ip) 47 | etcdClient.keys = append(etcdClient.keys, etcdKey) 48 | ctx, cancel := context.WithTimeout(context.Background(), time.Second) 49 | resp, err := cli.Get(ctx, etcdKey) 50 | if err != nil { 51 | logs.Error("etcd get请求失败:", err) 52 | continue 53 | } 54 | cancel() 55 | logs.Debug("resp from etcd:%v", resp.Kvs) 56 | for _, v := range resp.Kvs { 57 | if string(v.Key) == etcdKey { 58 | // 反序列化为结构体 59 | err = json.Unmarshal(v.Value, &collectConf) 60 | if err != nil { 61 | logs.Error("反序列化失败:", err) 62 | continue 63 | } 64 | logs.Debug("日志设置为%v", collectConf) 65 | } 66 | } 67 | } 68 | initEtcdWatcher(logConfig.etcdAddr) 69 | logs.Debug("连接etcd成功") 70 | return 71 | } 72 | 73 | // 初始化多个watch监控etcd中配置节点 74 | func initEtcdWatcher(addr string) { 75 | for _, key := range etcdClient.keys { 76 | go watchKey(addr, key) 77 | } 78 | } 79 | 80 | func watchKey(addr string, key string) { 81 | 82 | // 初始化连接etcd 83 | cli, err := clientv3.New(clientv3.Config{ 84 | //Endpoints: []string{"localhost:2379", "localhost:22379", "localhost:32379"}, 85 | Endpoints: []string{addr}, 86 | DialTimeout: 5 * time.Second, 87 | }) 88 | if err != nil { 89 | logs.Error("连接etcd失败:", err) 90 | return 91 | } 92 | 93 | logs.Debug("开始监控key:", key) 94 | 95 | // Watch操作 96 | for { 97 | var collectConf []tailf.CollectConf 98 | var getConfSucc = true 99 | wch := cli.Watch(context.Background(), key) 100 | for resp := range wch { 101 | for _, ev := range resp.Events { 102 | // DELETE处理 103 | if ev.Type == mvccpb.DELETE { 104 | logs.Warn("删除Key[%s]配置", key) 105 | continue 106 | } 107 | // PUT处理 108 | if ev.Type == mvccpb.PUT && string(ev.Kv.Key) == key { 109 | err = json.Unmarshal(ev.Kv.Value, &collectConf) 110 | if err != nil { 111 | logs.Error("反序列化key[%s]失败:", err) 112 | getConfSucc = false 113 | continue 114 | } 115 | } 116 | logs.Debug("get config from etcd ,Type: %v, Key:%v, Value:%v\n", ev.Type, string(ev.Kv.Key), string(ev.Kv.Value)) 117 | } 118 | if getConfSucc { 119 | logs.Debug("get config from etcd success, %v", collectConf) 120 | _ = tailf.UpdateConfig(collectConf) 121 | } 122 | } 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /logAgent/main/ip.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "net" 6 | ) 7 | 8 | var ( 9 | localIPArray []string 10 | ) 11 | 12 | func init() { 13 | addrs, err := net.InterfaceAddrs() 14 | if err != nil { 15 | panic(fmt.Sprintf("获取网卡ip失败, %v", err)) 16 | } 17 | for _, addr := range addrs { 18 | if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { 19 | if ipnet.IP.To4() != nil { 20 | localIPArray = append(localIPArray, ipnet.IP.String()) 21 | } 22 | } 23 | } 24 | 25 | fmt.Println(localIPArray) 26 | } 27 | -------------------------------------------------------------------------------- /logAgent/main/log.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "encoding/json" 5 | "fmt" 6 | "github.com/astaxie/beego/logs" 7 | ) 8 | 9 | func convertLogLevel(level string) int { 10 | 11 | switch level { 12 | case "debug": 13 | return logs.LevelDebug 14 | case "warn": 15 | return logs.LevelWarn 16 | case "info": 17 | return logs.LevelInfo 18 | case "trace": 19 | return logs.LevelTrace 20 | } 21 | return logs.LevelDebug 22 | } 23 | 24 | func initLogger() (err error) { 25 | 26 | config := make(map[string]interface{}) 27 | config["filename"] = logConfig.logPath 28 | config["level"] = convertLogLevel(logConfig.logLevel) 29 | configStr, err := json.Marshal(config) 30 | if err != nil { 31 | fmt.Println("初始化日志, 序列化失败:", err) 32 | return 33 | } 34 | _ = logs.SetLogger(logs.AdapterFile, string(configStr)) 35 | 36 | return 37 | } 38 | -------------------------------------------------------------------------------- /logAgent/main/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/astaxie/beego/logs" 6 | "logCollect/logAgent/kafka" 7 | "logCollect/logAgent/tailf" 8 | ) 9 | 10 | func main() { 11 | 12 | fmt.Println("开始") 13 | // 读取初始化配置文件 14 | filename := "E:\\Go\\logCollect\\logAgent\\conf\\logAgent.conf" 15 | err := loadInitConf("ini", filename) 16 | if err != nil { 17 | fmt.Printf("导入配置文件错误:%v\n", err) 18 | panic("导入配置文件错误") 19 | return 20 | } 21 | 22 | // 初始化日志信息 23 | err = initLogger() 24 | if err != nil { 25 | fmt.Printf("导入日志文件错误:%v\n", err) 26 | panic("导入日志文件错误") 27 | return 28 | } 29 | // 输出成功信息 30 | logs.Debug("导入日志成功%v", logConfig) 31 | 32 | // 初识化etcd 33 | collectConf, err := initEtcd(logConfig.etcdAddr, logConfig.etcdKey) 34 | if err != nil { 35 | logs.Error("初始化etcd失败", err) 36 | } 37 | logs.Debug("初始化etcd成功!") 38 | 39 | // 初始化tailf 40 | err = tailf.InitTail(collectConf, logConfig.chanSize) 41 | if err != nil { 42 | logs.Error("初始化tailf失败:", err) 43 | return 44 | } 45 | logs.Debug("初始化tailf成功!") 46 | 47 | // 初始化Kafka 48 | err = kafka.InitKafka(logConfig.KafkaAddr) 49 | if err != nil { 50 | logs.Error("初识化Kafka producer失败:", err) 51 | return 52 | } 53 | logs.Debug("初始化Kafka成功!") 54 | 55 | // 运行 56 | err = serverRun() 57 | if err != nil { 58 | logs.Error("serverRun failed:", err) 59 | } 60 | logs.Info("程序退出") 61 | } 62 | -------------------------------------------------------------------------------- /logAgent/main/server.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/astaxie/beego/logs" 5 | "logCollect/logAgent/kafka" 6 | "logCollect/logAgent/tailf" 7 | "time" 8 | ) 9 | 10 | func serverRun() (err error) { 11 | 12 | for { 13 | msg := tailf.GetOneLine() 14 | err = sendToKafka(msg) 15 | if err != nil { 16 | logs.Error("Send to Kafka failed, err:%v", err) 17 | time.Sleep(time.Second) 18 | continue 19 | } 20 | } 21 | 22 | } 23 | 24 | func sendToKafka(msg *tailf.TextMsg) (err error) { 25 | //fmt.Printf("读取 msg:%s, topic:%s\n", msg.Msg, msg.Topic) 26 | _ = kafka.SendToKafka(msg.Msg, msg.Topic) 27 | return 28 | } 29 | -------------------------------------------------------------------------------- /logAgent/tailf/tail.go: -------------------------------------------------------------------------------- 1 | package tailf 2 | 3 | import ( 4 | "github.com/astaxie/beego/logs" 5 | "github.com/hpcloud/tail" 6 | "sync" 7 | "time" 8 | ) 9 | 10 | // 定义常量 11 | const ( 12 | StatusNormal = 1 13 | StatusDelete = 2 14 | ) 15 | 16 | // 将日志收集配置放在tailf包下,方便其他包引用 17 | type CollectConf struct { 18 | LogPath string `json:"logpath"` 19 | Topic string `json:"topic"` 20 | } 21 | 22 | // 存入Collect 23 | type TailObj struct { 24 | tail *tail.Tail 25 | conf CollectConf 26 | status int 27 | exitChan chan int 28 | } 29 | 30 | // 定义Message信息 31 | type TextMsg struct { 32 | Msg string 33 | Topic string 34 | } 35 | 36 | // 管理系统所有tail对象 37 | type TailObjMgr struct { 38 | tailsObjs []*TailObj 39 | msgChan chan *TextMsg 40 | lock sync.Locker 41 | } 42 | 43 | // 定义全局变量 44 | var ( 45 | tailObjMgr *TailObjMgr 46 | ) 47 | 48 | func GetOneLine() (msg *TextMsg) { 49 | msg = <-tailObjMgr.msgChan 50 | return 51 | } 52 | 53 | // 新增etcd配置项 54 | func UpdateConfig(confs []CollectConf) (err error) { 55 | //// 加入锁, 防止多个goroutine工作 56 | //tailObjMgr.lock.Lock() 57 | //defer tailObjMgr.lock.Unlock() 58 | 59 | // 创建新的tailtask 60 | for _, oneConf := range confs { 61 | // 对于已经运行的所有实例, 路径是否一样 62 | var isRuning = false 63 | for _, obj := range tailObjMgr.tailsObjs { 64 | // 路径一样则证明是同一实例 65 | if oneConf.LogPath == obj.conf.LogPath { 66 | isRuning = true 67 | obj.status = StatusNormal 68 | break 69 | } 70 | } 71 | 72 | // 检查是否已经存在 73 | if isRuning { 74 | continue 75 | } 76 | 77 | // 如果不存在该配置项 新建一个tailtask任务 78 | createNewTask(oneConf) 79 | } 80 | 81 | // 遍历所有查看是否存在删除操作 82 | var tailObjs []*TailObj 83 | for _, obj := range tailObjMgr.tailsObjs { 84 | obj.status = StatusDelete 85 | for _, oneConf := range confs { 86 | if oneConf.LogPath == obj.conf.LogPath { 87 | obj.status = StatusNormal 88 | break 89 | } 90 | } 91 | // 如果status为删除, 则将exitChan置为1 92 | if obj.status == StatusDelete { 93 | obj.exitChan <- 1 94 | } 95 | // 将obj存入临时的数组中 96 | tailObjs = append(tailObjs, obj) 97 | } 98 | // 将临时数组传入tailsObjs中 99 | tailObjMgr.tailsObjs = tailObjs 100 | return 101 | } 102 | 103 | func createNewTask(conf CollectConf) { 104 | // 初始化Tailf实例 105 | tails, errTail := tail.TailFile(conf.LogPath, tail.Config{ 106 | ReOpen: true, 107 | Follow: true, 108 | Location: &tail.SeekInfo{Offset: 0, Whence: 2}, 109 | MustExist: false, 110 | Poll: true, 111 | }) 112 | 113 | if errTail != nil { 114 | logs.Error("收集文件[%s]错误: %v", conf.LogPath, errTail) 115 | return 116 | } 117 | // 导入配置项 118 | obj := &TailObj{ 119 | conf: conf, 120 | exitChan: make(chan int, 1), 121 | } 122 | 123 | obj.tail = tails 124 | tailObjMgr.tailsObjs = append(tailObjMgr.tailsObjs, obj) 125 | 126 | go readFromTail(obj) 127 | } 128 | 129 | // 初始化tail 130 | func InitTail(conf []CollectConf, chanSize int) (err error) { 131 | 132 | tailObjMgr = &TailObjMgr{ 133 | msgChan: make(chan *TextMsg, chanSize), // 定义Chan管道 134 | } 135 | 136 | // 加载配置项 137 | if len(conf) == 0 { 138 | logs.Error("无效的日志collect配置: ", conf) 139 | } 140 | 141 | // 循环导入 142 | for _, v := range conf { 143 | createNewTask(v) 144 | } 145 | 146 | return 147 | } 148 | 149 | // 读入日志数据 150 | func readFromTail(tailObj *TailObj) { 151 | for true { 152 | select { 153 | 154 | case msg, ok := <-tailObj.tail.Lines: 155 | if !ok { 156 | logs.Warn("Tail file close reopen, filename:%s\n", tailObj.tail.Filename) 157 | time.Sleep(100 * time.Millisecond) 158 | continue 159 | } 160 | textMsg := &TextMsg{ 161 | Msg: msg.Text, 162 | Topic: tailObj.conf.Topic, 163 | } 164 | // 放入chan里 165 | tailObjMgr.msgChan <- textMsg 166 | 167 | // 如果exitChan为1, 则删除对应配置项 168 | case <-tailObj.exitChan: 169 | logs.Warn("tail obj 退出, 配置项为conf:%v", tailObj.conf) 170 | return 171 | } 172 | } 173 | } 174 | -------------------------------------------------------------------------------- /logAgent/tools/SetConf/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "encoding/json" 6 | "fmt" 7 | "github.com/coreos/etcd/clientv3" 8 | "logCollect/logAgent/tailf" 9 | "time" 10 | ) 11 | 12 | // 定义etcd的前缀key 13 | const ( 14 | EtcdKey = "/backend/logagent/config/192.168.0.11" 15 | ) 16 | 17 | func SetLogConfToEtcd() { 18 | cli, err := clientv3.New(clientv3.Config{ 19 | Endpoints: []string{"localhost:2379", "localhost:22379", "localhost:32379"}, 20 | DialTimeout: 5 * time.Second, 21 | }) 22 | if err != nil { 23 | fmt.Println("connect failed, err:", err) 24 | return 25 | } 26 | 27 | fmt.Println("connect succ") 28 | defer cli.Close() 29 | 30 | var logConfArr []tailf.CollectConf 31 | logConfArr = append( 32 | logConfArr, 33 | tailf.CollectConf{ 34 | LogPath: "E:\\Go\\logCollect\\logAgent\\logs\\my.log", 35 | Topic: "nginx_log", 36 | }, 37 | ) 38 | 39 | // Json打包 40 | data, err := json.Marshal(logConfArr) 41 | if err != nil { 42 | fmt.Println("json failed, ", err) 43 | return 44 | } 45 | 46 | ctx, cancel := context.WithTimeout(context.Background(), time.Second) 47 | _, err = cli.Put(ctx, EtcdKey, string(data)) 48 | cancel() 49 | if err != nil { 50 | fmt.Println("put failed, err:", err) 51 | return 52 | } 53 | 54 | ctx, cancel = context.WithTimeout(context.Background(), time.Second) 55 | resp, err := cli.Get(ctx, EtcdKey) 56 | cancel() 57 | if err != nil { 58 | fmt.Println("get failed, err:", err) 59 | return 60 | } 61 | for _, ev := range resp.Kvs { 62 | fmt.Printf("%s : %s\n", ev.Key, ev.Value) 63 | } 64 | } 65 | 66 | func main() { 67 | SetLogConfToEtcd() 68 | } 69 | -------------------------------------------------------------------------------- /logBeegoWeb/conf/app.conf: -------------------------------------------------------------------------------- 1 | httpaddr = "127.0.0.1" 2 | httpport = 8080 3 | appname = logBeegoWeb 4 | autorender=true 5 | 6 | -------------------------------------------------------------------------------- /logBeegoWeb/controller/AppController/app.go: -------------------------------------------------------------------------------- 1 | package AppController 2 | 3 | import ( 4 | "fmt" 5 | "logBeegoWeb/model" 6 | 7 | "strings" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/logs" 11 | ) 12 | 13 | type AppController struct { 14 | beego.Controller 15 | } 16 | 17 | func (p *AppController) AppList() { 18 | 19 | logs.Debug("进入项目管理 index controller") 20 | 21 | p.Layout = "layout/layout.html" 22 | appList, err := model.GetAllAppInfo() 23 | if err != nil { 24 | p.Data["Error"] = fmt.Sprintf("服务器繁忙") 25 | p.TplName = "app/error.html" 26 | 27 | logs.Warn("获得app列表错误, err:%v", err) 28 | return 29 | } 30 | 31 | logs.Debug("获得app列表成功, data:%v", appList) 32 | p.Data["applist"] = appList 33 | 34 | p.TplName = "app/index.html" 35 | } 36 | 37 | func (p *AppController) AppApply() { 38 | 39 | logs.Debug("进入项目管理 index controller") 40 | p.Layout = "layout/layout.html" 41 | p.TplName = "app/apply.html" 42 | } 43 | 44 | func (p *AppController) AppCreate() { 45 | 46 | logs.Debug("进入项目管理 index controller") 47 | appName := p.GetString("app_name") 48 | appType := p.GetString("app_type") 49 | developPath := p.GetString("develop_path") 50 | ipstr := p.GetString("iplist") 51 | 52 | p.Layout = "layout/layout.html" 53 | 54 | if len(appName) == 0 || len(appType) == 0 || len(developPath) == 0 || len(ipstr) == 0 { 55 | p.Data["Error"] = fmt.Sprintf("非法参数") 56 | p.TplName = "app/error.html" 57 | 58 | logs.Warn("invalid parameter") 59 | return 60 | } 61 | 62 | appInfo := &model.AppInfo{} 63 | appInfo.AppName = appName 64 | appInfo.AppType = appType 65 | appInfo.DevelopPath = developPath 66 | appInfo.IP = strings.Split(ipstr, ",") 67 | 68 | err := model.CreateApp(appInfo) 69 | if err != nil { 70 | p.Data["Error"] = fmt.Sprintf("创建项目失败,数据库繁忙") 71 | p.TplName = "app/error.html" 72 | 73 | logs.Warn("invalid parameter") 74 | return 75 | } 76 | 77 | p.Redirect("/app/list", 302) 78 | } 79 | -------------------------------------------------------------------------------- /logBeegoWeb/controller/LogController/log.go: -------------------------------------------------------------------------------- 1 | package LogController 2 | 3 | import ( 4 | "fmt" 5 | "github.com/astaxie/beego" 6 | "github.com/astaxie/beego/logs" 7 | "logBeegoWeb/model" 8 | ) 9 | 10 | type LogController struct { 11 | beego.Controller 12 | } 13 | 14 | func (p *LogController) LogList() { 15 | 16 | logs.Debug("进入日志管理 index controller") 17 | 18 | p.Layout = "layout/layout.html" 19 | logList, err := model.GetAllLogInfo() 20 | if err != nil { 21 | p.Data["Error"] = fmt.Sprintf("服务器繁忙") 22 | p.TplName = "app/error.html" 23 | 24 | logs.Warn("get app list failed, err:%v", err) 25 | return 26 | } 27 | 28 | logs.Debug("get app list succ, data:%v", logList) 29 | p.Data["loglist"] = logList 30 | 31 | p.TplName = "log/index.html" 32 | } 33 | 34 | func (p *LogController) LogApply() { 35 | 36 | logs.Debug("进入日志管理 index controller") 37 | p.Layout = "layout/layout.html" 38 | p.TplName = "log/apply.html" 39 | } 40 | 41 | func (p *LogController) LogCreate() { 42 | 43 | logs.Debug("进入日志管理 index controller") 44 | appName := p.GetString("app_name") 45 | logPath := p.GetString("log_path") 46 | topic := p.GetString("topic") 47 | 48 | p.Layout = "layout/layout.html" 49 | if len(appName) == 0 || len(logPath) == 0 || len(topic) == 0 { 50 | p.Data["Error"] = fmt.Sprintf("非法参数") 51 | p.TplName = "log/error.html" 52 | 53 | logs.Warn("invalid parameter") 54 | return 55 | } 56 | 57 | logInfo := &model.LogInfo{} 58 | logInfo.AppName = appName 59 | logInfo.LogPath = logPath 60 | logInfo.Topic = topic 61 | 62 | err := model.CreateLog(logInfo) 63 | if err != nil { 64 | p.Data["Error"] = fmt.Sprintf("创建项目失败,数据库繁忙") 65 | p.TplName = "log/error.html" 66 | 67 | logs.Warn("invalid parameter") 68 | return 69 | } 70 | 71 | iplist, err := model.GetIPInfoByName(appName) 72 | if err != nil { 73 | p.Data["Error"] = fmt.Sprintf("获取项目ip失败,数据库繁忙") 74 | p.TplName = "log/error.html" 75 | 76 | logs.Warn("invalid parameter") 77 | return 78 | } 79 | keyFormat := "/backend/logagent/config/%s" 80 | 81 | for _, ip := range iplist { 82 | key := fmt.Sprintf(keyFormat, ip) 83 | err = model.SetLogConfToEtcd(key, logInfo) 84 | if err != nil { 85 | logs.Warn("Set log conf to etcd failed, err:%v", err) 86 | continue 87 | } 88 | } 89 | p.Redirect("/log/list", 302) 90 | } 91 | -------------------------------------------------------------------------------- /logBeegoWeb/go.mod: -------------------------------------------------------------------------------- 1 | module logBeegoWeb 2 | 3 | go 1.14 4 | 5 | require ( 6 | github.com/astaxie/beego v1.12.1 7 | github.com/coreos/etcd v3.3.19+incompatible 8 | github.com/coreos/go-semver v0.3.0 // indirect 9 | github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect 10 | github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect 11 | github.com/google/uuid v1.1.1 // indirect 12 | github.com/jmoiron/sqlx v1.2.0 13 | github.com/olivere/elastic/v7 v7.0.13 14 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect 15 | go.uber.org/zap v1.14.1 // indirect 16 | google.golang.org/grpc v1.26.0 // indirect 17 | logCollect v0.0.0 18 | ) 19 | 20 | replace logCollect => E:\Go\logCollect 21 | -------------------------------------------------------------------------------- /logBeegoWeb/main/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "logBeegoWeb/model" 6 | _ "logBeegoWeb/router" 7 | "time" 8 | 9 | "github.com/jmoiron/sqlx" 10 | 11 | "github.com/coreos/etcd/clientv3" 12 | _ "github.com/go-sql-driver/mysql" 13 | 14 | "github.com/astaxie/beego" 15 | "github.com/astaxie/beego/logs" 16 | ) 17 | 18 | func initDb() (err error) { 19 | database, err := sqlx.Open("mysql", "root:123456@tcp(192.168.0.131:3306)/logCollect") 20 | if err != nil { 21 | logs.Warn("open mysql failed,", err) 22 | return 23 | } 24 | 25 | model.InitDb(database) 26 | return 27 | } 28 | 29 | func initEtcd() (err error) { 30 | cli, err := clientv3.New(clientv3.Config{ 31 | Endpoints: []string{"localhost:2379", "localhost:22379", "localhost:32379"}, 32 | DialTimeout: 5 * time.Second, 33 | }) 34 | if err != nil { 35 | fmt.Println("connect failed, err:", err) 36 | return 37 | } 38 | 39 | model.InitEtcd(cli) 40 | return 41 | } 42 | 43 | func main() { 44 | 45 | err := initDb() 46 | if err != nil { 47 | logs.Warn("initDb failed, err:%v", err) 48 | return 49 | } 50 | 51 | err = initEtcd() 52 | if err != nil { 53 | logs.Warn("init etcd failed, err:%v", err) 54 | return 55 | } 56 | beego.Run() 57 | } 58 | -------------------------------------------------------------------------------- /logBeegoWeb/model/app.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | import ( 4 | "github.com/astaxie/beego/logs" 5 | "github.com/jmoiron/sqlx" 6 | ) 7 | 8 | type AppInfo struct { 9 | AppId int `db:"app_id"` 10 | AppName string `db:"app_name"` 11 | AppType string `db:"app_type"` 12 | CreateTime string `db:"create_time"` 13 | DevelopPath string `db:"develop_path"` 14 | IP []string 15 | } 16 | 17 | var ( 18 | Db *sqlx.DB 19 | ) 20 | 21 | func InitDb(db *sqlx.DB) { 22 | Db = db 23 | } 24 | 25 | func GetAllAppInfo() (appList []AppInfo, err error) { 26 | err = Db.Select(&appList, "select app_id, app_name, app_type, create_time, develop_path from tbl_app_info") 27 | if err != nil { 28 | logs.Warn("获取app列表信息失败, err:%v", err) 29 | return 30 | } 31 | return 32 | } 33 | 34 | func GetIPInfoById(appId int) (iplist []string, err error) { 35 | err = Db.Select(&iplist, "select ip from tbl_app_ip where app_id=?", appId) 36 | if err != nil { 37 | logs.Warn("获取app列表信息失败, err:%v", err) 38 | return 39 | } 40 | return 41 | } 42 | 43 | func GetIPInfoByName(appName string) (iplist []string, err error) { 44 | 45 | var appId []int 46 | err = Db.Select(&appId, "select app_id from tbl_app_info where app_name=?", appName) 47 | if err != nil || len(appId) == 0 { 48 | logs.Warn("select app_id failed, Db.Exec error:%v", err) 49 | return 50 | } 51 | 52 | err = Db.Select(&iplist, "select ip from tbl_app_ip where app_id=?", appId[0]) 53 | if err != nil { 54 | logs.Warn("Get All App Info failed, err:%v", err) 55 | return 56 | } 57 | return 58 | } 59 | 60 | func CreateApp(info *AppInfo) (err error) { 61 | 62 | conn, err := Db.Begin() 63 | if err != nil { 64 | logs.Warn("CreateApp failed, Db.Begin error:%v", err) 65 | return 66 | } 67 | 68 | defer func() { 69 | if err != nil { 70 | conn.Rollback() 71 | return 72 | } 73 | 74 | conn.Commit() 75 | }() 76 | r, err := conn.Exec("insert into tbl_app_info(app_name, app_type, develop_path)values(?, ?, ?)", 77 | info.AppName, info.AppType, info.DevelopPath) 78 | 79 | if err != nil { 80 | logs.Warn("CreateApp failed, Db.Exec error:%v", err) 81 | return 82 | } 83 | 84 | id, err := r.LastInsertId() 85 | if err != nil { 86 | logs.Warn("CreateApp failed, Db.LastInsertId error:%v", err) 87 | return 88 | } 89 | 90 | for _, ip := range info.IP { 91 | _, err = conn.Exec("insert into tbl_app_ip(app_id, ip)values(?,?)", id, ip) 92 | if err != nil { 93 | logs.Warn("CreateApp failed, conn.Exec ip error:%v", err) 94 | return 95 | } 96 | } 97 | return 98 | } 99 | -------------------------------------------------------------------------------- /logBeegoWeb/model/log.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | import ( 4 | "context" 5 | "encoding/json" 6 | "logCollect/logAgent/tailf" 7 | "time" 8 | 9 | "github.com/astaxie/beego/logs" 10 | "github.com/coreos/etcd/clientv3" 11 | ) 12 | 13 | var ( 14 | etcdClient *clientv3.Client 15 | ) 16 | 17 | type LogInfo struct { 18 | AppId int `db:"app_id"` 19 | AppName string `db:"app_name"` 20 | LogId int `db:"log_id"` 21 | Status int `db:"status"` 22 | CreateTime string `db:"create_time"` 23 | LogPath string `db:"log_path"` 24 | Topic string `db:"topic"` 25 | } 26 | 27 | func InitEtcd(client *clientv3.Client) { 28 | etcdClient = client 29 | } 30 | 31 | func GetAllLogInfo() (loglist []LogInfo, err error) { 32 | err = Db.Select(&loglist, 33 | "select a.app_id, b.app_name, a.create_time, a.topic, a.log_id, a.status, a.log_path from tbl_log_info a, tbl_app_info b where a.app_id=b.app_id") 34 | if err != nil { 35 | logs.Warn("获取app列表信息失败, err:%v", err) 36 | return 37 | } 38 | return 39 | } 40 | 41 | func CreateLog(info *LogInfo) (err error) { 42 | 43 | conn, err := Db.Begin() 44 | if err != nil { 45 | logs.Warn("CreateApp failed, Db.Begin error:%v", err) 46 | return 47 | } 48 | 49 | defer func() { 50 | if err != nil { 51 | _ = conn.Rollback() 52 | return 53 | } 54 | 55 | _ = conn.Commit() 56 | }() 57 | 58 | var appId []int 59 | err = Db.Select(&appId, "select app_id from tbl_app_info where app_name=?", info.AppName) 60 | if err != nil || len(appId) == 0 { 61 | logs.Warn("select app_id failed, Db.Exec error:%v", err) 62 | return 63 | } 64 | 65 | info.AppId = appId[0] 66 | r, err := conn.Exec("insert into tbl_log_info(app_id, log_path, topic)values(?, ?, ?)", 67 | info.AppId, info.LogPath, info.Topic) 68 | 69 | if err != nil { 70 | logs.Warn("CreateApp failed, Db.Exec error:%v", err) 71 | return 72 | } 73 | 74 | _, err = r.LastInsertId() 75 | if err != nil { 76 | logs.Warn("CreateApp failed, Db.LastInsertId error:%v", err) 77 | return 78 | } 79 | 80 | return 81 | } 82 | 83 | func SetLogConfToEtcd(etcdKey string, info *LogInfo) (err error) { 84 | 85 | var logConfArr []tailf.CollectConf 86 | logConfArr = append( 87 | logConfArr, 88 | tailf.CollectConf{ 89 | LogPath: info.LogPath, 90 | Topic: info.Topic, 91 | }, 92 | ) 93 | 94 | data, err := json.Marshal(logConfArr) 95 | if err != nil { 96 | logs.Warn("marshal failed, err:%v", err) 97 | return 98 | } 99 | 100 | ctx, cancel := context.WithTimeout(context.Background(), time.Second) 101 | //cli.Delete(ctx, EtcdKey) 102 | //return 103 | _, err = etcdClient.Put(ctx, etcdKey, string(data)) 104 | cancel() 105 | if err != nil { 106 | logs.Warn("Put failed, err:%v", err) 107 | return 108 | } 109 | 110 | logs.Debug("put etcd succ, data:%v", string(data)) 111 | return 112 | } 113 | -------------------------------------------------------------------------------- /logBeegoWeb/router/router.go: -------------------------------------------------------------------------------- 1 | package router 2 | 3 | import ( 4 | "logBeegoWeb/controller/AppController" 5 | "logBeegoWeb/controller/LogController" 6 | 7 | "github.com/astaxie/beego" 8 | ) 9 | 10 | func init() { 11 | beego.Router("/index", &AppController.AppController{}, "*:AppList") 12 | 13 | beego.Router("/app/list", &AppController.AppController{}, "*:AppList") 14 | beego.Router("/app/apply", &AppController.AppController{}, "*:AppApply") 15 | beego.Router("/app/create", &AppController.AppController{}, "*:AppCreate") 16 | 17 | beego.Router("/log/apply", &LogController.LogController{}, "*:LogApply") 18 | beego.Router("/log/list", &LogController.LogController{}, "*:LogList") 19 | beego.Router("/log/create", &LogController.LogController{}, "*:LogCreate") 20 | 21 | } 22 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/about-us.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Anout Us Page 3 | ***/ 4 | 5 | .meet-our-team h3 { 6 | margin-bottom: 0; 7 | padding: 0 10px 10px; 8 | background: #fcfcfc; 9 | } 10 | 11 | .meet-our-team small { 12 | display:block; 13 | font-size:12px; 14 | } 15 | 16 | .meet-our-team .team-info { 17 | padding: 10px; 18 | overflow: hidden; 19 | background: #fafafa; 20 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/blog.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Blog Page 3 | ***/ 4 | 5 | /*--Block Article--*/ 6 | .blog-page { 7 | padding-bottom: 20px; 8 | } 9 | 10 | .blog-page h1 { 11 | margin-bottom: 20px; 12 | } 13 | 14 | .blog-page h2 a { 15 | color: #000; 16 | } 17 | 18 | .blog-page h2 a:hover { 19 | color: #0d638f; 20 | text-decoration: none; 21 | } 22 | 23 | .blog-page hr { 24 | margin-top: 30px !important; 25 | } 26 | 27 | .blog-page .article-block { 28 | padding-bottom: 20px; 29 | } 30 | 31 | .blog-page .news-img img { 32 | margin-top: 9px; 33 | } 34 | 35 | .blog-page .blog-tag-data ul { 36 | margin-bottom: 5px; 37 | } 38 | 39 | .blog-page .blog-tag-data li { 40 | padding: 0; 41 | } 42 | 43 | .blog-page .blog-tag-data li i { 44 | color: #78cff8; 45 | } 46 | 47 | .blog-page .blog-tag-data li a { 48 | padding: 0; 49 | color: #555; 50 | margin-right: 8px; 51 | } 52 | 53 | .blog-page .blog-tag-data { 54 | margin-bottom: 10px; 55 | } 56 | 57 | .blog-page .blog-tag-data ul.blog-tags a { 58 | background: #eee; 59 | padding: 1px 4px; 60 | margin: 0 4px 4px 0; 61 | display: inline-block; 62 | } 63 | 64 | .blog-page .blog-tag-data ul.blog-tags a:hover { 65 | background: #ddd; 66 | text-decoration: none; 67 | } 68 | 69 | .blog-page .blog-tag-data .blog-tag-data-inner { 70 | text-align: right; 71 | } 72 | 73 | .blog-page .blog-tag-data img { 74 | margin-bottom: 12px; 75 | } 76 | 77 | .blog-page .blog-article { 78 | padding-bottom: 20px; 79 | } 80 | 81 | .blog-page .blog-article h2 { 82 | margin-top: 0; 83 | } 84 | 85 | /*--Block Sidebar--*/ 86 | .blog-sidebar h2 { 87 | font-size: 38.5px; 88 | margin-bottom: 20px; 89 | } 90 | 91 | /*Twitter block*/ 92 | .blog-twitter-block { 93 | padding: 5px; 94 | position: relative; 95 | margin-bottom: 10px; 96 | border-right: solid 2px #ddd; 97 | } 98 | 99 | .blog-twitter-block:hover { 100 | background: #fafafa; 101 | border-color: #35aa47; 102 | } 103 | 104 | .blog-twitter-block a { 105 | color: #4d90fe; 106 | } 107 | 108 | .blog-twitter-block p { 109 | margin-bottom: 0; 110 | } 111 | 112 | .blog-twitter-block span { 113 | color: #555; 114 | display: block; 115 | font-size: 12px; 116 | } 117 | 118 | .blog-twitter-block i.blog-twiiter-icon { 119 | color: #eee; 120 | right: 10px; 121 | bottom: 10px; 122 | font-size: 30px; 123 | position: absolute; 124 | } 125 | 126 | /*** 127 | Blog & News Item Page 128 | ***/ 129 | /*--Media Object--*/ 130 | .blog-page .media img { 131 | height: 54px; 132 | position: relative; 133 | top: 3px; 134 | width: 54px; 135 | } 136 | 137 | .blog-page h4.media-heading { 138 | position: relative; 139 | } 140 | 141 | .blog-page h4.media-heading span { 142 | color: #777777; 143 | font-size: 12px; 144 | position: absolute; 145 | right: 0; 146 | top: 3px; 147 | } 148 | 149 | .blog-page h4.media-heading span a { 150 | color: #78cff8; 151 | } 152 | 153 | /*Post Comment*/ 154 | .blog-page .post-comment .color-red { 155 | color: #f00; 156 | } 157 | 158 | /*For Responsive*/ 159 | @media (max-width: 768px) { 160 | .blog-page .blog-tag-data .blog-tag-data-inner { 161 | text-align: left; 162 | } 163 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/bootstrap-fileupload.css: -------------------------------------------------------------------------------- 1 | .btn-file { 2 | position: relative; 3 | overflow: hidden; 4 | vertical-align: middle; 5 | } 6 | 7 | .btn-file > input { 8 | position: absolute; 9 | top: 0; 10 | right: 0; 11 | margin: 0; 12 | font-size: 23px; 13 | cursor: pointer; 14 | opacity: 0; 15 | filter: alpha(opacity=0); 16 | transform: translate(-300px, 0) scale(4); 17 | direction: ltr; 18 | } 19 | 20 | .fileupload { 21 | margin-bottom: 9px; 22 | } 23 | 24 | .fileupload .uneditable-input { 25 | display: inline-block; 26 | margin-bottom: 0; 27 | vertical-align: middle; 28 | cursor: text; 29 | } 30 | 31 | .fileupload .thumbnail { 32 | display: inline-block; 33 | margin-bottom: 5px; 34 | overflow: hidden; 35 | text-align: center; 36 | vertical-align: middle; 37 | } 38 | 39 | .fileupload .thumbnail > img { 40 | display: inline-block; 41 | max-height: 100%; 42 | vertical-align: middle; 43 | } 44 | 45 | .fileupload .btn { 46 | vertical-align: middle; 47 | } 48 | 49 | .fileupload-exists .fileupload-new, 50 | .fileupload-new .fileupload-exists { 51 | display: none; 52 | } 53 | 54 | .fileupload-inline .fileupload-controls { 55 | display: inline; 56 | } 57 | 58 | .fileupload-new .input-append .btn-file { 59 | -webkit-border-radius: 0 3px 3px 0; 60 | -moz-border-radius: 0 3px 3px 0; 61 | border-radius: 0 3px 3px 0; 62 | } 63 | 64 | .thumbnail-borderless .thumbnail { 65 | padding: 0; 66 | border: none; 67 | -webkit-border-radius: 0; 68 | -moz-border-radius: 0; 69 | border-radius: 0; 70 | -webkit-box-shadow: none; 71 | -moz-box-shadow: none; 72 | box-shadow: none; 73 | } 74 | 75 | .fileupload-new.thumbnail-borderless .thumbnail { 76 | border: 1px solid #ddd; 77 | } 78 | 79 | .control-group.warning .fileupload .uneditable-input { 80 | color: #a47e3c; 81 | border-color: #a47e3c; 82 | } 83 | 84 | .control-group.warning .fileupload .fileupload-preview { 85 | color: #a47e3c; 86 | } 87 | 88 | .control-group.warning .fileupload .thumbnail { 89 | border-color: #a47e3c; 90 | } 91 | 92 | .control-group.error .fileupload .uneditable-input { 93 | color: #b94a48; 94 | border-color: #b94a48; 95 | } 96 | 97 | .control-group.error .fileupload .fileupload-preview { 98 | color: #b94a48; 99 | } 100 | 101 | .control-group.error .fileupload .thumbnail { 102 | border-color: #b94a48; 103 | } 104 | 105 | .control-group.success .fileupload .uneditable-input { 106 | color: #468847; 107 | border-color: #468847; 108 | } 109 | 110 | .control-group.success .fileupload .fileupload-preview { 111 | color: #468847; 112 | } 113 | 114 | .control-group.success .fileupload .thumbnail { 115 | border-color: #468847; 116 | } 117 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/bootstrap-responsive1.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/css/bootstrap-responsive1.min.css -------------------------------------------------------------------------------- /logBeegoWeb/static/css/bootstrap-tag.css: -------------------------------------------------------------------------------- 1 | .tags { 2 | display: inline-block; 3 | padding: 4px 6px; 4 | margin-bottom: 10px; 5 | color: #555555; 6 | vertical-align: middle; 7 | -webkit-border-radius: 4px; 8 | -moz-border-radius: 4px; 9 | border-radius: 4px; 10 | background-color: #ffffff; 11 | border: 1px solid #cccccc; 12 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 13 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 14 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 15 | -webkit-transition: border linear .2s, box-shadow linear .2s; 16 | -moz-transition: border linear .2s, box-shadow linear .2s; 17 | -o-transition: border linear .2s, box-shadow linear .2s; 18 | transition: border linear .2s, box-shadow linear .2s; 19 | width: 206px; 20 | } 21 | .tags-hover { 22 | border-color: rgba(82, 168, 236, 0.8); 23 | outline: 0; 24 | outline: thin dotted \9; 25 | /* IE6-9 */ 26 | 27 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); 28 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); 29 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); 30 | } 31 | .tags[class*="span"] { 32 | float: none; 33 | margin-left: 0; 34 | } 35 | .tags input[type="text"], 36 | .tags input[type="text"]:focus { 37 | border: none; 38 | display: inline; 39 | outline: 0; 40 | margin: 0; 41 | padding: 0; 42 | font-size: 11.844px; 43 | line-height: 14px; 44 | -webkit-box-shadow: none; 45 | -moz-box-shadow: none; 46 | box-shadow: none; 47 | width: 100%; 48 | } 49 | .tag { 50 | display: inline-block; 51 | padding: 2px 4px; 52 | font-size: 11.844px; 53 | font-weight: bold; 54 | line-height: 14px; 55 | color: #ffffff; 56 | vertical-align: baseline; 57 | white-space: nowrap; 58 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 59 | background-color: #999999; 60 | padding-left: 9px; 61 | padding-right: 9px; 62 | -webkit-border-radius: 9px; 63 | -moz-border-radius: 9px; 64 | border-radius: 9px; 65 | margin-bottom: 5px; 66 | margin-right: 5px; 67 | -webkit-transition: all 0.2s; 68 | -moz-transition: all 0.2s; 69 | -o-transition: all 0.2s; 70 | transition: all 0.2s; 71 | } 72 | .tag:empty { 73 | display: none; 74 | } 75 | .tag-important { 76 | background-color: #953b39; 77 | } 78 | .tag-warning { 79 | background-color: #c67605; 80 | } 81 | .tag-success { 82 | background-color: #356635; 83 | } 84 | .tag-info { 85 | background-color: #2d6987; 86 | } 87 | .tag-inverse { 88 | background-color: #1a1a1a; 89 | } 90 | .tag .close { 91 | font-size: 14px; 92 | line-height: 14px; 93 | margin-left: 7px; 94 | } 95 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/bootstrap-tree.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Tree v0.3 3 | * 4 | * Copyright 2012 Cutters Crossing 5 | * Bootstrap is Copyright 2012 Twitter, Inc. 6 | * Licensed under the Apache License v2.0 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Designed and built with all the love in the world by @cutterbl. 10 | */ 11 | 12 | .tree, 13 | .branch { 14 | list-style: none outside none; 15 | } 16 | .branch { 17 | postion: relative; 18 | height: 0; 19 | margin: 0 0 0 15px; 20 | overflow: hidden; 21 | } 22 | .branch.in { 23 | height: auto; 24 | } 25 | 26 | a:link, 27 | a:visited, 28 | a:hover, 29 | a:active { 30 | color: #000; 31 | text-decoration: none; 32 | } 33 | 34 | a:hover { 35 | text-decoration: underline; 36 | cursor: pointer; 37 | } 38 | /* Work in progress */ 39 | a.tree-toggle-icon-only { 40 | height: 16px; 41 | width: 20px; 42 | line-height: 16px; 43 | vertical-align: middle; 44 | display: inline-block; 45 | background: url("../image/bstree-halflings.png") no-repeat; 46 | background-position: 0 -22px; 47 | } 48 | 49 | a.tree-toggle { 50 | height: 16px; 51 | padding-left: 20px; 52 | line-height: 16px; 53 | vertical-align: middle; 54 | display: inline-block; 55 | background: url("../image/bstree-halflings.png") no-repeat; 56 | background-position: 0 -22px; 57 | } 58 | a.tree-toggle.closed, a.tree-toggle-icon-only.closed { 59 | background-position: 0 1px; 60 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/bootstrap-wysihtml5.css: -------------------------------------------------------------------------------- 1 | ul.wysihtml5-toolbar { 2 | margin: 0; 3 | padding: 0; 4 | display: block; 5 | } 6 | 7 | ul.wysihtml5-toolbar::after { 8 | clear: both; 9 | display: table; 10 | content: ""; 11 | } 12 | 13 | ul.wysihtml5-toolbar > li { 14 | float: left; 15 | display: list-item; 16 | list-style: none; 17 | margin: 0 5px 10px 0; 18 | } 19 | 20 | ul.wysihtml5-toolbar a[data-wysihtml5-command=bold] { 21 | font-weight: bold; 22 | } 23 | 24 | ul.wysihtml5-toolbar a[data-wysihtml5-command=italic] { 25 | font-style: italic; 26 | } 27 | 28 | ul.wysihtml5-toolbar a[data-wysihtml5-command=underline] { 29 | text-decoration: underline; 30 | } 31 | 32 | ul.wysihtml5-toolbar a.btn.wysihtml5-command-active { 33 | background-image: none; 34 | -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); 35 | -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); 36 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); 37 | background-color: #E6E6E6; 38 | background-color: #D9D9D9; 39 | outline: 0; 40 | } 41 | 42 | ul.wysihtml5-commands-disabled .dropdown-menu { 43 | display: none !important; 44 | } 45 | 46 | ul.wysihtml5-toolbar div.wysihtml5-colors { 47 | display:block; 48 | width: 50px; 49 | height: 20px; 50 | margin-top: 2px; 51 | margin-left: 5px; 52 | position: absolute; 53 | pointer-events: none; 54 | } 55 | 56 | ul.wysihtml5-toolbar a.wysihtml5-colors-title { 57 | padding-left: 70px; 58 | } 59 | 60 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="black"] { 61 | background: black !important; 62 | } 63 | 64 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="silver"] { 65 | background: silver !important; 66 | } 67 | 68 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="gray"] { 69 | background: gray !important; 70 | } 71 | 72 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="maroon"] { 73 | background: maroon !important; 74 | } 75 | 76 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="red"] { 77 | background: red !important; 78 | } 79 | 80 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="purple"] { 81 | background: purple !important; 82 | } 83 | 84 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="green"] { 85 | background: green !important; 86 | } 87 | 88 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="olive"] { 89 | background: olive !important; 90 | } 91 | 92 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="navy"] { 93 | background: navy !important; 94 | } 95 | 96 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="blue"] { 97 | background: blue !important; 98 | } 99 | 100 | ul.wysihtml5-toolbar div[data-wysihtml5-command-value="orange"] { 101 | background: orange !important; 102 | } 103 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/colorpicker.css: -------------------------------------------------------------------------------- 1 | /* 2 | Colorpicker for Bootstrap 3 | Copyright 2012 Stefan Petre 4 | Licensed under the Apache License v2.0 5 | http://www.apache.org/licenses/LICENSE-2.0 6 | */ 7 | .colorpicker-saturation { width: 100px; height: 100px; background-image: url(../image/saturation.png); cursor: crosshair; float: left; } .colorpicker-saturation i { display: block; height: 5px; width: 5px; border: 1px solid #000; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; position: absolute; top: 0; left: 0; margin: -4px 0 0 -4px; } .colorpicker-saturation i b { display: block; height: 5px; width: 5px; border: 1px solid #fff; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .colorpicker-hue, .colorpicker-alpha { width: 15px; height: 100px; float: left; cursor: row-resize; margin-left: 4px; margin-bottom: 4px; } .colorpicker-hue i, .colorpicker-alpha i { display: block; height: 1px; background: #000; border-top: 1px solid #fff; position: absolute; top: 0; left: 0; width: 100%; margin-top: -1px; } .colorpicker-hue { background-image: url(../image/hue.png); } .colorpicker-alpha { background-image: url(../image/alpha.png); display: none; } .colorpicker { *zoom: 1; top: 0; left: 0; padding: 4px; min-width: 120px; margin-top: 1px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .colorpicker:before, .colorpicker:after { display: table; content: ""; } .colorpicker:after { clear: both; } .colorpicker:before { content: ''; display: inline-block; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 7px solid #ccc; border-bottom-color: rgba(0, 0, 0, 0.2); position: absolute; top: -7px; left: 6px; } .colorpicker:after { content: ''; display: inline-block; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid #ffffff; position: absolute; top: -6px; left: 7px; } .colorpicker div { position: relative; } .colorpicker.alpha { min-width: 140px; } .colorpicker.alpha .colorpicker-alpha { display: block; } .colorpicker-color { height: 10px; margin-top: 5px; clear: both; background-image: url(../image/alpha.png); background-position: 0 100%; } .colorpicker-color div { height: 10px; } .input-append.color .add-on i, .input-prepend.color .add-on i { display: block; cursor: pointer; width: 16px; height: 16px; } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/coming-soon.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Coming Soon Page 3 | ***/ 4 | body { 5 | background-color: #ddd; 6 | padding: 0; 7 | margin: 0; 8 | } 9 | 10 | .coming-soon-header { 11 | padding: 20px; 12 | margin-top: 80px; 13 | } 14 | 15 | .coming-soon-content { 16 | padding: 20px; 17 | margin-top: 10px; 18 | } 19 | 20 | .coming-soon-countdown { 21 | padding: 20px; 22 | } 23 | 24 | .coming-soon-content h1, 25 | .coming-soon-content p { 26 | color: #fff; 27 | } 28 | 29 | .coming-soon-content h1 { 30 | font-size: 42px; 31 | line-height: 50px; 32 | margin-bottom: 15px; 33 | font-weight: 300; 34 | } 35 | 36 | .coming-soon-content p { 37 | font-size: 13px; 38 | } 39 | 40 | 41 | .coming-soon-content input { 42 | background: #fff !important; 43 | } 44 | 45 | .coming-soon-footer { 46 | text-align: left !important; 47 | font-size: 12px; 48 | color: #333; 49 | padding: 20px 20px 20px 20px; 50 | } 51 | 52 | /*Countdown*/ 53 | #defaultCountdown { 54 | width: 100%; 55 | margin: 10px 0; 56 | overflow: hidden; 57 | } 58 | 59 | #defaultCountdown span.countdown_row { 60 | overflow: hidden; 61 | } 62 | 63 | #defaultCountdown span.countdown_row span { 64 | font-size: 16px; 65 | font-weight: 300; 66 | line-height: 20px; 67 | margin-right: 2px; 68 | } 69 | 70 | #defaultCountdown span.countdown_row > span { 71 | float: left; 72 | } 73 | 74 | #defaultCountdown span.countdown_section { 75 | color: #fff; 76 | padding: 7px 15px !important; 77 | margin-bottom: 2px; 78 | font-weight: 300; 79 | background: url(../image/bg-white.png) repeat; 80 | text-align: center; 81 | } 82 | 83 | #defaultCountdown span.countdown_amount { 84 | display: inline-block; 85 | font-size: 38px !important; 86 | padding: 15px !important; 87 | font-weight: 300; 88 | } 89 | 90 | /*Responsive*/ 91 | @media (max-width: 1024px) { 92 | #defaultCountdown span.countdown_amount { 93 | padding: 10px; 94 | } 95 | } 96 | 97 | @media (max-width: 767px) { 98 | 99 | .coming-soon-header, 100 | .coming-soon-countdown, 101 | .coming-soon-content, 102 | .coming-soon-footer { 103 | margin-top: 0px; 104 | padding: 10px; 105 | } 106 | } 107 | 108 | @media (max-width: 320px) { 109 | 110 | .coming-soon-content .btn-subscribe span { 111 | display: none; 112 | } 113 | 114 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/email.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Email Template Page 3 | ***/ 4 | .mail-template ul { 5 | padding:0px; 6 | margin: 0px; 7 | list-style:none; 8 | } 9 | 10 | .mail-template li { 11 | margin:0 5px; 12 | cursor:pointer; 13 | list-style:none; 14 | border:solid 2px #fff; 15 | } 16 | 17 | .mail-template li:hover { 18 | border:solid 2px #aaa; 19 | } 20 | 21 | .mail-template li a{ 22 | display:block; 23 | padding:25px; 24 | } 25 | 26 | .mail-template li a:hover { 27 | text-decoration: none; 28 | } 29 | 30 | .mail-template li.color-black { 31 | background:#1f1f1f; 32 | } 33 | 34 | .mail-template li.color-darkblue { 35 | background:#1570a6; 36 | } 37 | 38 | .mail-template li.color-lightblue { 39 | background:#4aabf9; 40 | } 41 | 42 | .mail-template li.color-red { 43 | background:#eb4d41; 44 | } 45 | 46 | .mail-template li.color-green { 47 | background:#28b779; 48 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/error.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Error Pages 3 | ***/ 4 | 5 | /* 404 page option #1 */ 6 | 7 | .page-404 { 8 | text-align: center; 9 | } 10 | 11 | .page-404 .number { 12 | display: inline-block; 13 | letter-spacing: -10px; 14 | margin-top: 0px; 15 | line-height: 128px; 16 | font-size: 158px; 17 | font-weight: 300; 18 | color: #7bbbd6; 19 | text-align: right; 20 | } 21 | 22 | .page-404 .details { 23 | margin-left: 40px; 24 | display: inline-block; 25 | padding-top: 0px; 26 | text-align: left; 27 | } 28 | 29 | /* 500 page option #1 */ 30 | .page-500 { 31 | text-align: center; 32 | } 33 | 34 | .page-500 .number { 35 | display: inline-block; 36 | letter-spacing: -10px; 37 | line-height: 128px; 38 | font-size: 158px; 39 | font-weight: 300; 40 | color: #ec8c8c; 41 | text-align: right; 42 | } 43 | 44 | .page-500 .details { 45 | margin-left: 40px; 46 | display: inline-block; 47 | text-align: left; 48 | } 49 | 50 | /* 404 page option #2*/ 51 | .page-404-full-page { 52 | padding: 20px; 53 | background-color: #fafafa !important; 54 | } 55 | 56 | .page-404-full-page .details input { 57 | background-color: #ffffff; 58 | } 59 | 60 | .page-404-full-page .page-404 { 61 | margin-top: 100px; 62 | } 63 | 64 | /* 500 page option #2*/ 65 | .page-500-full-page { 66 | padding: 20px; 67 | background-color: #fafafa !important; 68 | } 69 | 70 | .page-500-full-page .details input { 71 | background-color: #ffffff; 72 | } 73 | 74 | .page-500-full-page .page-500 { 75 | margin-top: 100px; 76 | } 77 | 78 | /* 404 page option #3*/ 79 | 80 | .page-404-3 { 81 | background: #000 !important ; 82 | } 83 | 84 | .page-404-3 .page-inner img { 85 | right: 0; 86 | bottom: 0; 87 | z-index: -1; 88 | position: absolute; 89 | } 90 | 91 | .page-404-3 .error-404 { 92 | color: #fff; 93 | text-align: left; 94 | padding: 70px 20px 0; 95 | } 96 | 97 | .page-404-3 h1 { 98 | color: #fff; 99 | font-size: 130px; 100 | line-height: 160px; 101 | } 102 | 103 | .page-404-3 h2 { 104 | color: #fff; 105 | font-size: 30px; 106 | margin-bottom: 30px; 107 | } 108 | 109 | .page-404-3 p { 110 | color: #fff; 111 | font-size: 16px; 112 | } 113 | 114 | 115 | @media (max-width: 480px) { 116 | 117 | .page-404 .number, 118 | .page-500 .number, 119 | .page-404 .details, 120 | .page-500 .details { 121 | text-align: center; 122 | margin-left: 0px; 123 | } 124 | 125 | .page-404-full-page .page-404 { 126 | margin-top: 30px; 127 | } 128 | 129 | .page-404-3 .error-404 { 130 | text-align: left; 131 | padding-top: 10px; 132 | } 133 | 134 | .page-404-3 .page-inner img { 135 | right: 0; 136 | bottom: 0; 137 | z-index: -1; 138 | position: fixed; 139 | } 140 | 141 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/invoice.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Invoice page 3 | ***/ 4 | .invoice table { 5 | margin:30px 0 30px; 6 | } 7 | 8 | .invoice .invoice-logo { 9 | margin-bottom:20px; 10 | } 11 | 12 | .invoice .invoice-logo p { 13 | padding:5px 0; 14 | font-size:26px; 15 | line-height:28px; 16 | text-align:right; 17 | } 18 | 19 | .invoice .invoice-logo p span { 20 | display:block; 21 | font-size:14px; 22 | } 23 | 24 | .invoice .invoice-logo-space { 25 | margin-bottom:15px; 26 | } 27 | 28 | .invoice .invoice-payment strong { 29 | margin-right:5px; 30 | } 31 | 32 | .invoice .invoice-block { 33 | text-align:right; 34 | } 35 | 36 | .invoice .invoice-block .amounts { 37 | margin-top: 20px; 38 | font-size: 14px; 39 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery-ui-1.10.1.custom.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/css/jquery-ui-1.10.1.custom.min.css -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery.easy-pie-chart.css: -------------------------------------------------------------------------------- 1 | .easyPieChart { 2 | position: relative; 3 | text-align: center; 4 | } 5 | 6 | .easyPieChart canvas { 7 | position: absolute; 8 | top: 0; 9 | left: 0; 10 | } 11 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery.fileupload-ui.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * jQuery File Upload UI Plugin CSS 6.10 4 | * https://github.com/blueimp/jQuery-File-Upload 5 | * 6 | * Copyright 2010, Sebastian Tschan 7 | * https://blueimp.net 8 | * 9 | * Licensed under the MIT license: 10 | * http://www.opensource.org/licenses/MIT 11 | */ 12 | 13 | .fileinput-button { 14 | position: relative; 15 | overflow: hidden; 16 | float: left; 17 | margin-right: 4px; 18 | } 19 | .fileinput-button input { 20 | position: absolute; 21 | top: 0; 22 | right: 0; 23 | margin: 0; 24 | opacity: 0; 25 | filter: alpha(opacity=0); 26 | transform: translate(-300px, 0) scale(4); 27 | font-size: 23px; 28 | direction: ltr; 29 | cursor: pointer; 30 | } 31 | .fileupload-buttonbar .btn, 32 | .fileupload-buttonbar .toggle { 33 | margin-bottom: 5px; 34 | } 35 | .files .progress { 36 | width: 200px; 37 | } 38 | .progress-animated .bar { 39 | background: url(../image/progressbar.gif) !important; 40 | filter: none; 41 | } 42 | .fileupload-loading { 43 | position: absolute; 44 | left: 50%; 45 | width: 128px; 46 | height: 128px; 47 | background: url(../image/loading.gif) center no-repeat; 48 | display: none; 49 | } 50 | .fileupload-processing .fileupload-loading { 51 | display: block; 52 | } 53 | 54 | /* Fix for IE 6: */ 55 | * html .fileinput-button { 56 | line-height: 24px; 57 | margin: 1px -3px 0 0; 58 | } 59 | 60 | /* Fix for IE 7: */ 61 | * + html .fileinput-button { 62 | padding: 2px 15px; 63 | margin: 1px 0 0 0; 64 | } 65 | 66 | @media (max-width: 767px) { 67 | .files .btn span { 68 | display: none; 69 | } 70 | .files .preview * { 71 | width: 40px; 72 | } 73 | .files .name * { 74 | width: 80px; 75 | display: inline-block; 76 | word-wrap: break-word; 77 | } 78 | .files .progress { 79 | width: 20px; 80 | } 81 | .files .delete { 82 | width: 60px; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery.gritter.css: -------------------------------------------------------------------------------- 1 | /* the norm */ 2 | #gritter-notice-wrapper { 3 | position:fixed; 4 | top:20px; 5 | right:20px; 6 | width:301px; 7 | z-index:9999; 8 | } 9 | #gritter-notice-wrapper.top-left { 10 | left: 20px; 11 | right: auto; 12 | } 13 | #gritter-notice-wrapper.bottom-right { 14 | top: auto; 15 | left: auto; 16 | bottom: 20px; 17 | right: 20px; 18 | } 19 | #gritter-notice-wrapper.bottom-left { 20 | top: auto; 21 | right: auto; 22 | bottom: 20px; 23 | left: 20px; 24 | } 25 | .gritter-item-wrapper { 26 | position:relative; 27 | margin:0 0 10px 0; 28 | background:url('../image/ie-spacer.gif'); /* ie7/8 fix */ 29 | } 30 | .gritter-top { 31 | background:url(../image/gritter.png) no-repeat left -30px; 32 | height:10px; 33 | } 34 | .hover .gritter-top { 35 | background-position:right -30px; 36 | } 37 | .gritter-bottom { 38 | background:url(../image/gritter.png) no-repeat left bottom; 39 | height:8px; 40 | margin:0; 41 | } 42 | .hover .gritter-bottom { 43 | background-position: bottom right; 44 | } 45 | .gritter-item { 46 | display:block; 47 | background:url(../image/gritter.png) no-repeat left -40px; 48 | color:#eee; 49 | padding:2px 11px 8px 11px; 50 | font-size: 11px; 51 | font-family:verdana; 52 | } 53 | .hover .gritter-item { 54 | background-position:right -40px; 55 | } 56 | .gritter-item p { 57 | padding:0; 58 | margin:0; 59 | word-wrap:break-word; 60 | } 61 | .gritter-close { 62 | display:none; 63 | position:absolute; 64 | top:5px; 65 | left:3px; 66 | background:url(../image/gritter.png) no-repeat left top; 67 | cursor:pointer; 68 | width:30px; 69 | height:30px; 70 | } 71 | .gritter-title { 72 | font-size:14px; 73 | font-weight:bold; 74 | padding:0 0 7px 0; 75 | display:block; 76 | text-shadow:1px 1px 0 #000; /* Not supported by IE :( */ 77 | } 78 | .gritter-image { 79 | width:48px; 80 | height:48px; 81 | float:left; 82 | } 83 | .gritter-with-image, 84 | .gritter-without-image { 85 | padding:0; 86 | } 87 | .gritter-with-image { 88 | width:220px; 89 | float:right; 90 | } 91 | /* for the light (white) version of the gritter notice */ 92 | .gritter-light .gritter-item, 93 | .gritter-light .gritter-bottom, 94 | .gritter-light .gritter-top, 95 | .gritter-light .gritter-close { 96 | background-image: url(../image/gritter-light.png); 97 | color: #222; 98 | } 99 | .gritter-light .gritter-title { 100 | text-shadow: none; 101 | } 102 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery.nestable.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Nestable 3 | */ 4 | .dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none; } 5 | .dd-list .dd-list { padding-left: 30px; } 6 | .dd-collapsed .dd-list { display: none; } 7 | 8 | .dd-item, 9 | .dd-empty, 10 | .dd-placeholder { display: block; position: relative; margin: 0; padding: 0; min-height: 20px; font-size: 13px; line-height: 20px; } 11 | 12 | .dd-handle { display: block; height: 30px; margin: 5px 0; cursor: move; padding: 5px 10px; color: #333; text-decoration: none; font-weight: 400; border: 1px solid #ccc; 13 | background: #fafafa; 14 | -webkit-border-radius: 3px; 15 | border-radius: 3px; 16 | box-sizing: border-box; -moz-box-sizing: border-box; 17 | } 18 | .dd-handle:hover { color: #2ea8e5; background: #fff; } 19 | 20 | .dd-item > button { display: block; position: relative; cursor: pointer; float: left; width: 25px; height: 20px; margin: 7px 0; padding: 0; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 0; background: transparent; font-size: 10px; line-height: 1; text-align: center; font-weight: bold; } 21 | .dd-item > button:before { content: '\f067'; display: block; position: absolute; width: 100%; text-align: center; text-indent: 0; font-family: 'FontAwesome' } 22 | .dd-item > button[data-action="collapse"]:before { content: '\f068'; } 23 | 24 | .dd-placeholder, 25 | .dd-empty { 26 | margin: 5px 0; padding: 0; min-height: 30px; background: #f2fbff; border: 1px dashed #b6bcbf; 27 | box-sizing: border-box; -moz-box-sizing: border-box; } 28 | .dd-empty { border: 1px dashed #bbb; min-height: 100px; background-color: #e5e5e5; 29 | background-size: 60px 60px; 30 | background-position: 0 0, 30px 30px; 31 | } 32 | 33 | .dd-dragel { position: absolute; pointer-events: none; z-index: 9999; } 34 | .dd-dragel > .dd-item .dd-handle { margin-top: 0; } 35 | .dd-dragel .dd-handle { 36 | -webkit-box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1); 37 | box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1); 38 | } 39 | 40 | .dd-hover > .dd-handle { background: #2ea8e5 !important; } 41 | 42 | /** 43 | * Nestable Draggable Handles 44 | */ 45 | 46 | .dd3-content { display: block; height: 30px; margin: 5px 0; padding: 5px 10px 5px 40px; color: #333; text-decoration: none; font-weight: 400; border: 1px solid #ccc; 47 | background: #fafafa; 48 | -webkit-border-radius: 3px; 49 | border-radius: 3px; 50 | box-sizing: border-box; -moz-box-sizing: border-box; 51 | } 52 | .dd3-content:hover { color: #2ea8e5; background: #fff; } 53 | 54 | .dd-dragel > .dd3-item > .dd3-content { margin: 0; } 55 | 56 | .dd3-item > button { margin-left: 30px; } 57 | 58 | .dd3-handle { position: absolute; margin: 0; left: 0; top: 0; cursor:move; width: 30px; text-indent: 100%; white-space: nowrap; overflow: hidden; 59 | border: 1px solid #aaa; 60 | background: #ddd; 61 | border-top-right-radius: 0; 62 | border-bottom-right-radius: 0; 63 | } 64 | .dd3-handle:before { content: '≡'; display: block; position: absolute; left: 0; top: 3px; width: 100%; text-align: center; text-indent: 0; color: #fff; font-size: 20px; font-weight: normal; } 65 | .dd3-handle:hover { background: #ddd; } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery.tagsinput.css: -------------------------------------------------------------------------------- 1 | div.tagsinput { border:1px solid #CCC; background: #FFF; padding:5px; width:300px; height:100px; overflow-y: auto;} 2 | div.tagsinput span.tag { border: 1px solid #a5d24a; -moz-border-radius:2px; -webkit-border-radius:2px; display: block; float: left; padding: 5px; text-decoration:none; background: #cde69c; color: #638421; margin-right: 5px; margin-bottom:5px;font-family: helvetica; font-size:13px;} 3 | div.tagsinput span.tag a { font-weight: bold; color: #82ad2b; text-decoration:none; font-size: 11px; } 4 | div.tagsinput input { width:80px; margin:0px; font-family: helvetica; font-size: 13px; border:1px solid transparent; padding:5px; background: transparent; color: #000; outline:0px; margin-right:5px; margin-bottom:5px; } 5 | div.tagsinput div { display:block; float: left; } 6 | .tags_clear { clear: both; width: 100%; height: 0px; } 7 | .not_valid {background: #FBD8DB !important; color: #90111A !important;} 8 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jquery.ui.slider.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/css/jquery.ui.slider.css -------------------------------------------------------------------------------- /logBeegoWeb/static/css/jqvmap.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQVMap Version 1.0 3 | * 4 | * http://jqvmap.com 5 | * 6 | * Copyright 2012, Peter Schmalfeldt 7 | * Licensed under the MIT license. 8 | * 9 | * Fork Me @ https://github.com/manifestinteractive/jqvmap 10 | */ 11 | .jqvmap-label 12 | { 13 | position: absolute; 14 | display: none; 15 | -webkit-border-radius: 3px; 16 | -moz-border-radius: 3px; 17 | border-radius: 3px; 18 | background: #292929; 19 | color: white; 20 | font-family: sans-serif, Verdana; 21 | font-size: smaller; 22 | padding: 3px; 23 | } 24 | .jqvmap-zoomin, .jqvmap-zoomout 25 | { 26 | position: absolute; 27 | left: 10px; 28 | -webkit-border-radius: 3px; 29 | -moz-border-radius: 3px; 30 | border-radius: 3px; 31 | background: #000000; 32 | padding: 3px; 33 | color: white; 34 | width: 10px; 35 | height: 10px; 36 | cursor: pointer; 37 | line-height: 10px; 38 | text-align: center; 39 | } 40 | .jqvmap-zoomin 41 | { 42 | top: 10px; 43 | } 44 | .jqvmap-zoomout 45 | { 46 | top: 30px; 47 | } 48 | .jqvmap-region 49 | { 50 | cursor: pointer; 51 | } 52 | .jqvmap-ajax_response 53 | { 54 | width: 100%; 55 | height: 500px; 56 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/lock.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Lock Page 3 | ***/ 4 | body { 5 | background-color: #ddd; 6 | padding: 0; 7 | margin: 0; 8 | } 9 | 10 | .page-lock { 11 | top: 50%; 12 | left: 50%; 13 | position: absolute; 14 | margin-top: -140px; 15 | margin-left: -260px; 16 | } 17 | 18 | .page-lock .page-logo { 19 | margin-bottom: 15px; 20 | } 21 | 22 | .page-lock .page-body { 23 | width: 500px; 24 | padding: 10px; 25 | background: url(../image/bg-white-lock.png) repeat; 26 | } 27 | 28 | .page-lock .page-body:after, 29 | .page-lock .page-body:before { 30 | display: table; 31 | content: ""; 32 | line-height: 0; 33 | } 34 | 35 | .page-lock .page-body:after { 36 | clear: both; 37 | } 38 | 39 | .page-lock .page-footer { 40 | margin-top: 10px; 41 | text-align: left !important; 42 | font-size: 12px; 43 | color: #333; 44 | } 45 | 46 | .page-lock img.page-lock-img { 47 | float: left; 48 | width: 200px; 49 | height: auto; 50 | } 51 | 52 | .page-lock .page-lock-info { 53 | float: right; 54 | width: 280px; 55 | } 56 | 57 | .page-lock .page-lock-info h1 { 58 | margin-top: -5px; 59 | font-weight: 300; 60 | color: #fff; 61 | font-size: 28px; 62 | line-height: 32px; 63 | } 64 | 65 | .page-lock .page-lock-info span { 66 | color: #eee; 67 | display: block; 68 | font-size: 14px; 69 | margin-top: -5px; 70 | margin-bottom: 10px; 71 | } 72 | 73 | .page-lock .page-lock-info span em { 74 | color: #333; 75 | font-size: 14px; 76 | font-style: normal; 77 | } 78 | 79 | .page-lock .page-lock-info form { 80 | margin: 28px 0; 81 | } 82 | 83 | .page-lock .page-lock-info input { 84 | background: #fff; 85 | } 86 | 87 | .page-lock .relogin { 88 | margin-top: 10px; 89 | } 90 | 91 | .page-lock .relogin a { 92 | color: #e1e1e1; 93 | } 94 | 95 | /*Responsive*/ 96 | @media (max-width: 480px) { 97 | .page-lock { 98 | top:0px; 99 | width: 260px; 100 | margin-top: 20px; 101 | margin-left: -140px; 102 | } 103 | 104 | .page-lock .page-body { 105 | padding: 10px; 106 | text-align: center; 107 | width: 260px; 108 | } 109 | 110 | .page-lock img.page-lock-img { 111 | float: none !important; 112 | display: block; 113 | margin: 0 auto; 114 | text-align: center; 115 | margin-bottom: 15px; 116 | } 117 | .page-lock .page-lock-info { 118 | float: none !important; 119 | width: 260px; 120 | margin: 0 auto; 121 | } 122 | .page-lock .page-lock-info1 form { 123 | margin-bottom: 0; 124 | } 125 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/login-soft.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Login page 3 | ***/ 4 | 5 | /* logo page */ 6 | .login { 7 | background-color: #666 !important; 8 | } 9 | 10 | .login .logo { 11 | width: 247px; 12 | margin: 0 auto; 13 | margin-top:60px; 14 | padding: 15px; 15 | text-align: center; 16 | } 17 | 18 | 19 | .login .content { 20 | background: url(../image/bg-white-lock.png) repeat; 21 | width: 291px; 22 | margin: 0 auto; 23 | margin-bottom: 0px; 24 | padding: 30px; 25 | padding-top: 20px; 26 | padding-bottom: 15px; 27 | } 28 | 29 | .login .content h3 { 30 | color: #eee; 31 | } 32 | .login .content h4 { 33 | color: #eee; 34 | } 35 | 36 | .login .content p, 37 | .login .content label { 38 | color: #fff; 39 | } 40 | 41 | .login .content .login-form, 42 | .login .content .forget-form { 43 | padding: 0px; 44 | margin: 0px; 45 | } 46 | 47 | .login .content .m-wrap { 48 | width: 249px; 49 | background-color: #fff; 50 | } 51 | 52 | 53 | .login .content .control-group { 54 | margin-bottom: 20px !important; 55 | } 56 | 57 | .login .content .input-icon .m-wrap { 58 | margin: 0px !important; 59 | } 60 | 61 | .login .content .forget-form { 62 | display: none; 63 | } 64 | 65 | .login .content .register-form { 66 | display: none; 67 | } 68 | 69 | .login .content .form-title { 70 | font-weight: 300; 71 | margin-bottom: 25px; 72 | } 73 | 74 | .login .content .form-actions { 75 | background-color: transparent; 76 | clear: both; 77 | border: 0px; 78 | border-bottom1: 1px solid #999; 79 | padding: 0px 30px 25px 30px; 80 | margin-left: -30px; 81 | margin-right: -30px; 82 | } 83 | 84 | .login .content .forget-form .form-actions { 85 | border: 0; 86 | margin-bottom: 0; 87 | padding-bottom: 20px; 88 | } 89 | 90 | .login .content .register-form .form-actions { 91 | border: 0; 92 | margin-bottom: 0; 93 | padding-bottom: 0px; 94 | } 95 | 96 | .login .content .form-actions .checkbox { 97 | margin-top: 8px; 98 | display: inline-block; 99 | } 100 | 101 | .login .content .form-actions .btn { 102 | margin-top: 1px; 103 | } 104 | 105 | .login .content .forget-password { 106 | margin-top: 25px; 107 | } 108 | 109 | .login .content .create-account { 110 | border-top: 1px dotted #eee; 111 | padding-top: 10px; 112 | margin-top: 15px; 113 | } 114 | 115 | .login .content .create-account a { 116 | display: inline-block; 117 | margin-top: 5px; 118 | } 119 | 120 | .login .copyright { 121 | text-align: center; 122 | width: 270px; 123 | margin: 0 auto; 124 | padding: 10px 10px 0 10px; 125 | color: #eee; 126 | font-size: 12px; 127 | } 128 | 129 | @media (max-width: 480px) { 130 | /*** 131 | Login page 132 | ***/ 133 | .login .logo { 134 | margin-top:10px; 135 | } 136 | 137 | .login .content { 138 | padding: 30px; 139 | width: 222px; 140 | } 141 | 142 | .login .content h3 { 143 | font-size: 22px; 144 | } 145 | 146 | .login .content .m-wrap { 147 | width: 180px; 148 | } 149 | 150 | .login .checkbox { 151 | font-size: 13px; 152 | } 153 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/login.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Login page 3 | ***/ 4 | 5 | /* logo page */ 6 | .login { 7 | background-color: #444 !important; 8 | } 9 | 10 | .login .logo { 11 | width: 247px; 12 | margin: 0 auto; 13 | margin-top:60px; 14 | padding: 15px; 15 | text-align: center; 16 | } 17 | 18 | .login .content { 19 | background-color:#fff; 20 | width: 291px; 21 | margin: 0 auto; 22 | margin-bottom: 0px; 23 | padding: 30px; 24 | padding-top: 20px; 25 | padding-bottom: 15px; 26 | } 27 | 28 | .login .content h3 { 29 | color: #000; 30 | } 31 | .login .content h4 { 32 | color: #555; 33 | } 34 | 35 | .login .content p { 36 | color: #222; 37 | } 38 | 39 | .login .content .login-form, 40 | .login .content .forget-form { 41 | padding: 0px; 42 | margin: 0px; 43 | } 44 | 45 | .login .content .m-wrap { 46 | width: 249px; 47 | border-left: 0 !important; 48 | } 49 | 50 | .login .content .input-icon { 51 | border-left: 2px solid #35aa47 !important; 52 | } 53 | 54 | .login .content .control-group { 55 | margin-bottom: 20px !important; 56 | } 57 | 58 | .login .content .input-icon .m-wrap { 59 | margin: 0px !important; 60 | } 61 | 62 | .login .content .forget-form { 63 | display: none; 64 | } 65 | 66 | .login .content .register-form { 67 | display: none; 68 | } 69 | 70 | .login .content .form-title { 71 | font-weight: 300; 72 | margin-bottom: 25px; 73 | } 74 | 75 | .login .content .form-actions { 76 | background-color: #fff; 77 | clear: both; 78 | border: 0px; 79 | border-bottom: 1px solid #eee; 80 | padding: 0px 30px 25px 30px; 81 | margin-left: -30px; 82 | margin-right: -30px; 83 | } 84 | 85 | .login .content .forget-form .form-actions { 86 | border: 0; 87 | margin-bottom: 0; 88 | padding-bottom: 20px; 89 | } 90 | 91 | .login .content .register-form .form-actions { 92 | border: 0; 93 | margin-bottom: 0; 94 | padding-bottom: 0px; 95 | } 96 | 97 | .login .content .form-actions .checkbox { 98 | margin-top: 8px; 99 | display: inline-block; 100 | } 101 | 102 | .login .content .form-actions .btn { 103 | margin-top: 1px; 104 | } 105 | 106 | .login .content .forget-password { 107 | margin-top: 25px; 108 | } 109 | 110 | .login .content .create-account { 111 | border-top: 1px dotted #eee; 112 | padding-top: 10px; 113 | margin-top: 15px; 114 | } 115 | 116 | .login .content .create-account a { 117 | display: inline-block; 118 | margin-top: 5px; 119 | } 120 | 121 | .login .copyright { 122 | text-align: center; 123 | width: 250px; 124 | margin: 0 auto; 125 | padding: 10px 10px 0 10px; 126 | color: #999; 127 | font-size: 11px; 128 | } 129 | 130 | @media (max-width: 480px) { 131 | /*** 132 | Login page 133 | ***/ 134 | .login .logo { 135 | margin-top:10px; 136 | } 137 | 138 | .login .content { 139 | padding: 30px; 140 | width: 222px; 141 | } 142 | 143 | .login .content h3 { 144 | font-size: 22px; 145 | } 146 | 147 | .login .content .m-wrap { 148 | width: 180px; 149 | } 150 | 151 | .login .checkbox { 152 | font-size: 13px; 153 | } 154 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/multi-select-metro.css: -------------------------------------------------------------------------------- 1 | .ms-container{ 2 | background: transparent url('../image/switch.png') no-repeat 170px 80px; 3 | display: inline-block; 4 | } 5 | 6 | .ms-container:after{ 7 | content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; 8 | } 9 | 10 | .ms-container .ms-selectable, .ms-container .ms-selection{ 11 | 12 | background: #fff; 13 | color: #555555; 14 | float: left; 15 | } 16 | 17 | .ms-container .ms-list{ 18 | -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; 19 | -moz-transition: border linear 0.2s, box-shadow linear 0.2s; 20 | -ms-transition: border linear 0.2s, box-shadow linear 0.2s; 21 | -o-transition: border linear 0.2s, box-shadow linear 0.2s; 22 | transition: border linear 0.2s, box-shadow linear 0.2s; 23 | border: 1px solid #ccc; 24 | -webkit-border-radius: 3px; 25 | -moz-border-radius: 3px; 26 | border-radius: 3px; 27 | } 28 | 29 | 30 | .ms-selected{ 31 | display:none; 32 | } 33 | .ms-container .ms-selectable{ 34 | margin-right: 40px; 35 | } 36 | 37 | .ms-container .ms-list.ms-focus{ 38 | border-color: rgba(82, 168, 236, 0.8); 39 | outline: 0; 40 | outline: thin dotted \9; 41 | } 42 | 43 | .ms-container ul{ 44 | margin: 0; 45 | list-style-type: none; 46 | padding: 0; 47 | } 48 | 49 | .ms-container .ms-optgroup-container{ 50 | width: 100%; 51 | } 52 | 53 | .ms-container ul.ms-list{ 54 | width: 160px; 55 | height: 200px; 56 | padding: 0; 57 | overflow-y: auto; 58 | } 59 | 60 | .ms-container .ms-optgroup-label{ 61 | margin: 0; 62 | padding: 5px 0px 0px 5px; 63 | cursor: pointer; 64 | font-size: 14px; 65 | color: #999; 66 | } 67 | 68 | .ms-container .ms-selectable li.ms-elem-selectable, 69 | .ms-container .ms-selection li.ms-elem-selection{ 70 | border-bottom: 1px #eee solid; 71 | padding: 2px 10px; 72 | color: #555; 73 | font-size: 13px; 74 | } 75 | 76 | .ms-container .ms-selectable li.ms-hover, 77 | .ms-container .ms-selection li.ms-hover{ 78 | cursor: pointer; 79 | color: #fff; 80 | text-decoration: none; 81 | background-color: #4b8df8; 82 | } 83 | 84 | .ms-container .ms-selectable li.disabled, 85 | .ms-container .ms-selection li.disabled{ 86 | background-color: #eee; 87 | color: #aaa; 88 | cursor: text; 89 | } 90 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/news.css: -------------------------------------------------------------------------------- 1 | /*** 2 | News Page 3 | ***/ 4 | 5 | .news-page { 6 | padding-bottom: 20px; 7 | } 8 | 9 | .news-page h1 { 10 | margin-bottom: 20px; 11 | } 12 | 13 | .news-page h2 { 14 | font-size: 38.5px; 15 | margin-bottom: 20px; 16 | } 17 | 18 | .news-page .top-news { 19 | margin-top: 0; 20 | } 21 | 22 | /*News Feeds*/ 23 | .news-blocks { 24 | padding: 10px; 25 | margin-bottom: 10px; 26 | background: #faf6ea; 27 | border-top: solid 2px #faf6ea; 28 | } 29 | 30 | .news-blocks:hover { 31 | background: #fff; 32 | border-color: #78cff8; 33 | transition: all 0.4s ease-in-out 0s; 34 | -moz-transition: all 0.4s ease-in-out 0s; 35 | -webkit-transition: all 0.4s ease-in-out 0s; 36 | } 37 | 38 | .news-blocks h3 { 39 | margin: 0 0 5px 0; 40 | font-size: 23px; 41 | line-height: 32px; 42 | } 43 | 44 | .news-blocks h3 a { 45 | color: #000; 46 | } 47 | 48 | .news-blocks h3 a:hover { 49 | color: #78cff8; 50 | text-decoration: none; 51 | } 52 | 53 | .news-blocks p { 54 | overflow: hidden; 55 | } 56 | 57 | .news-blocks a.news-block-btn { 58 | color: #000; 59 | display: block; 60 | font-size: 14px; 61 | background: none; 62 | padding: 5px 10px 0; 63 | text-align: right; 64 | text-decoration: none; 65 | } 66 | 67 | .news-blocks a.news-block-btn i { 68 | margin-left: 3px; 69 | } 70 | 71 | 72 | .news-blocks a.news-block-btn:hover { 73 | text-decoration: none; 74 | } 75 | 76 | .news-blocks img.news-block-img { 77 | width: 70px; 78 | height: 70px; 79 | margin: 5px 10px 0 0; 80 | } 81 | 82 | .news-blocks .news-block-tags { 83 | margin-bottom: 8px; 84 | } 85 | 86 | .news-blocks .news-block-tags strong { 87 | margin-right: 10px; 88 | font-weight: 400; 89 | } 90 | 91 | .news-blocks .news-block-tags em { 92 | font-style: normal; 93 | } 94 | 95 | /*News Item Page*/ 96 | .news-item-page { 97 | padding: 10px 0; 98 | } 99 | 100 | .blog-tag-data ul { 101 | margin-bottom: 5px; 102 | } 103 | 104 | .blog-tag-data li { 105 | padding: 0; 106 | } 107 | 108 | .blog-tag-data li i { 109 | color: #78cff8; 110 | } 111 | 112 | .blog-tag-data li a { 113 | padding: 0; 114 | color: #555; 115 | margin-right: 8px; 116 | } 117 | 118 | .blog-tag-data { 119 | margin-bottom: 10px; 120 | } 121 | 122 | .blog-tag-data img { 123 | margin-bottom: 12px; 124 | } 125 | 126 | .blog-tag-data ul.blog-tags a { 127 | background: #eee; 128 | padding: 1px 4px; 129 | margin: 0 4px 4px 0; 130 | display: inline-block; 131 | } 132 | 133 | .blog-tag-data ul.blog-tags a:hover { 134 | background: #ddd; 135 | text-decoration: none; 136 | } 137 | 138 | .blog-tag-data .blog-tag-data-inner { 139 | text-align: right; 140 | } 141 | 142 | 143 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/print.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Import fonts 3 | ***/ 4 | .header { 5 | display: none; 6 | } 7 | 8 | .page-sidebar { 9 | display: none; 10 | } 11 | 12 | .color-panel { 13 | display: none; 14 | } 15 | 16 | .hidden-print { 17 | display: none; 18 | } 19 | 20 | .footer { 21 | display: none; 22 | } 23 | 24 | .no-page-break { 25 | page-break-after: avoid; 26 | } 27 | 28 | .page-container { 29 | margin: 0px; 30 | padding: 0px; 31 | } 32 | 33 | .page-content { 34 | min-height: auto !important; 35 | } -------------------------------------------------------------------------------- /logBeegoWeb/static/css/promo.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Promo Page 3 | ***/ 4 | 5 | .promo-page { 6 | padding-left: 0; 7 | padding-right: 0; 8 | min-height: 650px; 9 | } 10 | 11 | .promo-page h1, .promo-page h2 { 12 | font-size: 50px; 13 | line-height: 60px; 14 | } 15 | 16 | .promo-page .btn.xlarge { 17 | font-size: 22px; 18 | padding: 7px 25px; 19 | margin: 5px 0; 20 | } 21 | 22 | .promo-page input.m-wrap { 23 | background: #fff; 24 | } 25 | 26 | /*page row options*/ 27 | 28 | .promo-page .block-transparent { 29 | min-height: 350px; 30 | padding: 50px 20px 30px 20px; 31 | } 32 | 33 | .promo-page .block-grey { 34 | min-height: 350px; 35 | padding: 50px 20px 30px 20px; 36 | background: #eeedf2; 37 | } 38 | 39 | .promo-page .block-yellow { 40 | min-height: 350px; 41 | padding: 50px 20px 30px 20px; 42 | background: #ffd800; 43 | } 44 | 45 | .promo-page .block-footer { 46 | padding: 30px 20px 30px 20px; 47 | background: #eeedf2; 48 | } 49 | 50 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/style-non-responsive.css: -------------------------------------------------------------------------------- 1 | /*** 2 | Large notebooks and desktops 3 | ***/ 4 | 5 | /*** 6 | Page sidebar 7 | ***/ 8 | .page-sidebar { 9 | position: absolute; 10 | width: 225px; 11 | } 12 | 13 | .page-sidebar-fixed .page-sidebar { 14 | position: fixed !important; 15 | top: 41px; 16 | } 17 | 18 | .page-sidebar-fixed ul.page-sidebar-menu > li.last { 19 | margin-bottom: 15px !important; 20 | } 21 | 22 | .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar { 23 | z-index: 10000; 24 | width: 35px; 25 | } 26 | 27 | .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar .selected { 28 | display: none; 29 | } 30 | 31 | .page-sidebar-fixed.page-sidebar-hover-on .page-content { 32 | margin-left: 35px; 33 | } 34 | .page-sidebar-fixed.page-sidebar-hover-on .footer { 35 | margin-left: 35px; 36 | } 37 | 38 | .page-sidebar-fixed .page-sidebar-closed .page-sidebar .sidebar-search .submit, 39 | .page-sidebar-fixed .page-sidebar .sidebar-toggler { 40 | -webkit-transition: all 0.2s ease; 41 | -moz-transition: all 0.2s ease; 42 | -o-transition: all 0.2s ease; 43 | transition: all 0.2s ease; 44 | } 45 | 46 | .page-sidebar-hovering { 47 | overflow: hidden !important; 48 | } 49 | 50 | .page-sidebar-hovering .sub-menu, 51 | .page-sidebar-hovering span.title, 52 | .page-sidebar-hovering span.arrow { 53 | display: none !important; 54 | } 55 | 56 | .page-sidebar-hovering .submit { 57 | opacity: 0; 58 | width: 0 !important; 59 | height: 0 !important; 60 | } 61 | 62 | /*** 63 | Page content 64 | ***/ 65 | .page-content { 66 | margin-left: 225px; 67 | margin-top: 0px; 68 | min-height: 760px; 69 | } 70 | 71 | .page-sidebar-fixed .page-content { 72 | min-height: 600px; 73 | } 74 | 75 | .page-content.no-min-height { 76 | min-height: auto; 77 | } 78 | 79 | /*** 80 | Footer 81 | ***/ 82 | 83 | /* fixed sidebar */ 84 | .page-sidebar-fixed .footer { 85 | margin-left: 225px; 86 | background-color: #fff; 87 | } 88 | 89 | .page-sidebar-fixed .footer .footer-inner { 90 | color: #333; 91 | } 92 | 93 | .page-sidebar-fixed.page-sidebar-closed .footer { 94 | margin-left: 35px; 95 | } 96 | 97 | .page-sidebar-fixed .footer .footer-tools .go-top { 98 | background-color: #666; 99 | } 100 | 101 | .page-sidebar-fixed .footer .footer-tools .go-top i { 102 | color: #ddd; 103 | } 104 | 105 | /* boxed layout */ 106 | .page-boxed .header .brand { 107 | margin-left: 0px !important; 108 | width: 226px; 109 | } 110 | 111 | .page-boxed .header .brand img { 112 | margin-left: 10px; 113 | } 114 | -------------------------------------------------------------------------------- /logBeegoWeb/static/css/timepicker.css: -------------------------------------------------------------------------------- 1 | .bootstrap-timepicker.dropdown-menu { 2 | border-radius: 4px 4px 4px 4px; 3 | display: none; 4 | left: 0; 5 | margin-top: 1px; 6 | padding: 4px; 7 | top: 0; 8 | min-width: 10px; 9 | z-index: 99999; 10 | } 11 | .bootstrap-timepicker.dropdown-menu.open { 12 | display: inline-block; 13 | } 14 | .bootstrap-timepicker.dropdown-menu:before { 15 | border-bottom: 7px solid rgba(0, 0, 0, 0.2); 16 | border-left: 7px solid transparent; 17 | border-right: 7px solid transparent; 18 | content: ""; 19 | left: 6px; 20 | position: absolute; 21 | top: -7px; 22 | } 23 | .bootstrap-timepicker.dropdown-menu:after { 24 | border-bottom: 6px solid #FFFFFF; 25 | border-left: 6px solid transparent; 26 | border-right: 6px solid transparent; 27 | content: ""; 28 | left: 7px; 29 | position: absolute; 30 | top: -6px; 31 | } 32 | .bootstrap-timepicker.modal { 33 | margin-left: -100px; 34 | margin-top: 0; 35 | top: 30%; 36 | width: 200px; 37 | } 38 | .bootstrap-timepicker.modal .modal-header h3 { 39 | font-size: 16px !important; 40 | margin-top: 3px; 41 | margin-bottom: 3px; 42 | } 43 | .bootstrap-timepicker.modal .modal-content { 44 | padding: 0; 45 | } 46 | .bootstrap-timepicker table { 47 | margin: 0; 48 | width: 100%; 49 | } 50 | .bootstrap-timepicker table td { 51 | height: 30px; 52 | margin: 0; 53 | padding: 2px; 54 | text-align: center; 55 | } 56 | .bootstrap-timepicker table td span { 57 | width: 100%; 58 | } 59 | .bootstrap-timepicker table td a { 60 | border: 1px solid transparent; 61 | display: inline-block; 62 | margin: 0; 63 | outline: 0 none; 64 | padding: 8px 0; 65 | width: 3em; 66 | } 67 | .bootstrap-timepicker table td a:hover { 68 | background-color: #EEEEEE; 69 | border-color: #DDDDDD; 70 | border-radius: 4px 4px 4px 4px; 71 | text-decoration: none; 72 | } 73 | .bootstrap-timepicker table td a i { 74 | margin-top: 2px; 75 | } 76 | .bootstrap-timepicker table td input { 77 | margin: 0; 78 | text-align: center; 79 | width: 25px; 80 | } 81 | .bootstrap-timepicker-component .add-on { 82 | cursor: pointer; 83 | } 84 | .bootstrap-timepicker-component .add-on i { 85 | display: block; 86 | height: 16px; 87 | width: 16px; 88 | } 89 | -------------------------------------------------------------------------------- /logBeegoWeb/static/image/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/1.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/10.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/11.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/2.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/3.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/4.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/5.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/6.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/7.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/8.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/9.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/KwPYo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/KwPYo.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/alpha.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/amazon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/amazon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/animated-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/animated-overlay.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/avatar.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/avatar1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/avatar1.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/avatar1_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/avatar1_small.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/avatar2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/avatar2.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/avatar3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/avatar3.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/behance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/behance.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg-input-focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg-input-focus.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg-input.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg-opacity.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg-white-lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg-white-lock.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg/1.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg/2.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg/3.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bg/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bg/4.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/blank.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/blogger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/blogger.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/bstree-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/bstree-halflings.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/chosen-sprite.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/css -------------------------------------------------------------------------------- /logBeegoWeb/static/image/datatable-row-openclose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/datatable-row-openclose.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/deviantart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/deviantart.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/dribbble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/dribbble.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/dropbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/dropbox.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/earth.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/evernote.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/facebook.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/fancybox_loading.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/fancybox_overlay.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/fancybox_sprite.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/favicon.ico -------------------------------------------------------------------------------- /logBeegoWeb/static/image/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/fontawesome-webfont.eot -------------------------------------------------------------------------------- /logBeegoWeb/static/image/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /logBeegoWeb/static/image/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/fontawesome-webfont.woff -------------------------------------------------------------------------------- /logBeegoWeb/static/image/forrst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/forrst.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/github.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons-halflings.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons-regular.eot -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons-regular.ttf -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons-regular.woff -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons_halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons_halflings-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphicons_halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphicons_halflings.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphiconshalflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphiconshalflings-regular.eot -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphiconshalflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphiconshalflings-regular.ttf -------------------------------------------------------------------------------- /logBeegoWeb/static/image/glyphiconshalflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/glyphiconshalflings-regular.woff -------------------------------------------------------------------------------- /logBeegoWeb/static/image/googleplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/googleplus.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/gritter-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/gritter-light.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/gritter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/gritter.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/hor-menu-search-close-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/hor-menu-search-close-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/hor-menu-search-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/hor-menu-search-close.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/hor-menu-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/hor-menu-search.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/hue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/hue.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/icon-color-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/icon-color-close.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/icon-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/icon-color.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/icon-img-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/icon-img-down.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/icon-img-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/icon-img-up.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ie-spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ie-spacer.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/image1.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/image2.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/image3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/image3.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/image4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/image4.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/image5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/image5.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/img1.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/img1_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/img1_2.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/img2.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/img3.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/img4.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/inbox-nav-arrow-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/inbox-nav-arrow-blue.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/instagram.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/iphone.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/item_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/item_img.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/item_img1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/item_img1.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/jolicloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/jolicloud.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/js: -------------------------------------------------------------------------------- 1 | alert("The Google Maps API server rejected your request. The \x22sensor\x22 parameter specified in the request must be set to either \x22true\x22 or \x22false\x22.") -------------------------------------------------------------------------------- /logBeegoWeb/static/image/last-fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/last-fm.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/linkedin.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/loading.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/logo-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/logo-big.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/logo.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/logo_azteca.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/logo_azteca.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/logo_conquer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/logo_conquer.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/logo_metronic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/logo_metronic.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/menu-toggler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/menu-toggler.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/overlay-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/overlay-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/photo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/photo1.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/photo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/photo2.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/photo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/photo3.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/photo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/photo4.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/photo5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/photo5.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/photo6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/photo6.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/picasa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/picasa.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/pintrest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/pintrest.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-collapse-icon-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-collapse-icon-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-collapse-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-collapse-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-config-icon-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-config-icon-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-config-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-config-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-expand-icon-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-expand-icon-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-expand-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-expand-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-reload-icon-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-reload-icon-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-reload-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-reload-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-remove-icon-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-remove-icon-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/portlet-remove-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/portlet-remove-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_02.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_03.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_04.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_05.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_06.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_07.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_08.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_09.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_10.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_11.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_12.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_13.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_14.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_15.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_16.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/preview_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/preview_17.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/profile-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/profile-img.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/profile.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/progressbar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/progressbar.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/remove-icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/remove-icon-small.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/rss.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/saturation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/saturation.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/search-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/search-icon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/select2-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/select2-spinner.gif -------------------------------------------------------------------------------- /logBeegoWeb/static/image/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/select2.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/select2x2.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sidebar-menu-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sidebar-menu-arrow.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sidebar-search-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sidebar-search-close.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sidebar-toggler.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sidebar-toggler.jpg -------------------------------------------------------------------------------- /logBeegoWeb/static/image/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/skype.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/social_facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/social_facebook.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/social_googleplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/social_googleplus.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/social_linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/social_linkedin.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/social_rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/social_rss.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/social_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/social_twitter.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sort_asc.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sort_asc_disabled.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sort_both.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sort_desc.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sort_desc_disabled.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/spotify.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/sprite.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/spritemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/spritemap.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/spritemap@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/spritemap@2x.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/stumbleupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/stumbleupon.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/switch.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/syncfusion-icons-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/syncfusion-icons-white.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/syncfusion-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/syncfusion-icons.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/tumblr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/tumblr.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/twitter.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_diagonals-thick_18_b81900_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_diagonals-thick_18_b81900_40x40.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_flat_10_000000_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_flat_10_000000_40x100.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_glass_100_f6f6f6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_glass_100_f6f6f6_1x400.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_glass_100_fdf5ce_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_glass_100_fdf5ce_1x400.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_gloss-wave_35_f6a828_500x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_gloss-wave_35_f6a828_500x100.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_highlight-soft_100_eeeeee_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_highlight-soft_100_eeeeee_1x100.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-bg_highlight-soft_75_ffe45c_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-bg_highlight-soft_75_ffe45c_1x100.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-icons_228ef1_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-icons_228ef1_256x240.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-icons_ef8c08_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-icons_ef8c08_256x240.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-icons_ffd27a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-icons_ffd27a_256x240.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/vimeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/vimeo.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/vk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/vk.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/walmart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/walmart.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/wordpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/wordpress.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/xing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/xing.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/yahoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/yahoo.png -------------------------------------------------------------------------------- /logBeegoWeb/static/image/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/image/youtube.png -------------------------------------------------------------------------------- /logBeegoWeb/static/js/bootstrap-rtl.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/js/bootstrap-rtl.min.js -------------------------------------------------------------------------------- /logBeegoWeb/static/js/breakpoints.js: -------------------------------------------------------------------------------- 1 | /* 2 | Breakpoints.js 3 | version 1.0 4 | 5 | Creates handy events for your responsive design breakpoints 6 | 7 | Copyright 2011 XOXCO, Inc 8 | http://xoxco.com/ 9 | 10 | Documentation for this plugin lives here: 11 | http://xoxco.com/projects/code/breakpoints 12 | 13 | Licensed under the MIT license: 14 | http://www.opensource.org/licenses/mit-license.php 15 | 16 | */ 17 | (function($) { 18 | 19 | var lastSize = 0; 20 | var interval = null; 21 | 22 | $.fn.resetBreakpoints = function() { 23 | $(window).unbind('resize'); 24 | if (interval) { 25 | clearInterval(interval); 26 | } 27 | lastSize = 0; 28 | }; 29 | 30 | $.fn.setBreakpoints = function(settings) { 31 | var options = jQuery.extend({ 32 | distinct: true, 33 | breakpoints: new Array(320,480,768,1024) 34 | },settings); 35 | 36 | 37 | interval = setInterval(function() { 38 | 39 | var w = $(window).width(); 40 | var done = false; 41 | 42 | for (var bp in options.breakpoints.sort(function(a,b) { return (b-a) })) { 43 | 44 | // fire onEnter when a browser expands into a new breakpoint 45 | // if in distinct mode, remove all other breakpoints first. 46 | if (!done && w >= options.breakpoints[bp] && lastSize < options.breakpoints[bp]) { 47 | if (options.distinct) { 48 | for (var x in options.breakpoints.sort(function(a,b) { return (b-a) })) { 49 | if ($('body').hasClass('breakpoint-' + options.breakpoints[x])) { 50 | $('body').removeClass('breakpoint-' + options.breakpoints[x]); 51 | $(window).trigger('exitBreakpoint' + options.breakpoints[x]); 52 | } 53 | } 54 | done = true; 55 | } 56 | $('body').addClass('breakpoint-' + options.breakpoints[bp]); 57 | $(window).trigger('enterBreakpoint' + options.breakpoints[bp]); 58 | 59 | } 60 | 61 | // fire onExit when browser contracts out of a larger breakpoint 62 | if (w < options.breakpoints[bp] && lastSize >= options.breakpoints[bp]) { 63 | $('body').removeClass('breakpoint-' + options.breakpoints[bp]); 64 | $(window).trigger('exitBreakpoint' + options.breakpoints[bp]); 65 | 66 | } 67 | 68 | // if in distinct mode, fire onEnter when browser contracts into a smaller breakpoint 69 | if ( 70 | options.distinct && // only one breakpoint at a time 71 | w >= options.breakpoints[bp] && // and we are in this one 72 | w < options.breakpoints[bp-1] && // and smaller than the bigger one 73 | lastSize > w && // and we contracted 74 | lastSize >0 && // and this is not the first time 75 | !$('body').hasClass('breakpoint-' + options.breakpoints[bp]) // and we aren't already in this breakpoint 76 | ) { 77 | $('body').addClass('breakpoint-' + options.breakpoints[bp]); 78 | $(window).trigger('enterBreakpoint' + options.breakpoints[bp]); 79 | 80 | } 81 | } 82 | 83 | // set up for next call 84 | if (lastSize != w) { 85 | lastSize = w; 86 | } 87 | },250); 88 | }; 89 | 90 | })(jQuery); 91 | -------------------------------------------------------------------------------- /logBeegoWeb/static/js/breakpoints.min.js: -------------------------------------------------------------------------------- 1 | (function(c){var b=0;var a=null;c.fn.resetBreakpoints=function(){c(window).unbind("resize");if(a){clearInterval(a)}b=0};c.fn.setBreakpoints=function(e){var d=jQuery.extend({distinct:true,breakpoints:new Array(320,480,768,1024)},e);a=setInterval(function(){var h=c(window).width();var g=false;for(var i in d.breakpoints.sort(function(k,j){return(j-k)})){if(!g&&h>=d.breakpoints[i]&&b=d.breakpoints[i]){c("body").removeClass("breakpoint-"+d.breakpoints[i]);c(window).trigger("exitBreakpoint"+d.breakpoints[i])}if(d.distinct&&h>=d.breakpoints[i]&&hh&&b>0&&!c("body").hasClass("breakpoint-"+d.breakpoints[i])){c("body").addClass("breakpoint-"+d.breakpoints[i]);c(window).trigger("enterBreakpoint"+d.breakpoints[i])}}if(b!=h){b=h}},250)}})(jQuery); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/canvas-to-blob.min.js: -------------------------------------------------------------------------------- 1 | (function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return(new Blob([new Uint8Array(100)])).size===100}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;a.split(",")[0].indexOf("base64")>=0?b=atob(a.split(",")[1]):b=decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f);for(h=0;hLoop, Inc. 795 Park Ave, Suite 120
San Francisco, CA 94107" 19 | } 20 | }); 21 | 22 | marker.infoWindow.open(map, marker); 23 | }); 24 | } 25 | }; 26 | 27 | }(); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/excanvas.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/js/excanvas.js -------------------------------------------------------------------------------- /logBeegoWeb/static/js/form-fileupload.js: -------------------------------------------------------------------------------- 1 | var FormFileUpload = function () { 2 | 3 | 4 | return { 5 | //main function to initiate the module 6 | init: function () { 7 | 8 | // Initialize the jQuery File Upload widget: 9 | $('#fileupload').fileupload({ 10 | // Uncomment the following to send cross-domain cookies: 11 | //xhrFields: {withCredentials: true}, 12 | url: 'assets/plugins/jquery-file-upload/server/php/' 13 | }); 14 | 15 | // Load existing files: 16 | // Demo settings: 17 | $.ajax({ 18 | // Uncomment the following to send cross-domain cookies: 19 | //xhrFields: {withCredentials: true}, 20 | url: $('#fileupload').fileupload('option', 'url'), 21 | dataType: 'json', 22 | context: $('#fileupload')[0], 23 | maxFileSize: 5000000, 24 | acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, 25 | process: [{ 26 | action: 'load', 27 | fileTypes: /^image\/(gif|jpeg|png)$/, 28 | maxFileSize: 20000000 // 20MB 29 | }, { 30 | action: 'resize', 31 | maxWidth: 1440, 32 | maxHeight: 900 33 | }, { 34 | action: 'save' 35 | } 36 | ] 37 | }).done(function (result) { 38 | $(this).fileupload('option', 'done') 39 | .call(this, null, { 40 | result: result 41 | }); 42 | }); 43 | 44 | // Upload server status check for browsers with CORS support: 45 | if ($.support.cors) { 46 | $.ajax({ 47 | url: 'assets/plugins/jquery-file-upload/server/php/', 48 | type: 'HEAD' 49 | }).fail(function () { 50 | $('') 51 | .text('Upload server currently unavailable - ' + 52 | new Date()) 53 | .appendTo('#fileupload'); 54 | }); 55 | } 56 | 57 | // initialize uniform checkboxes 58 | App.initUniform('.fileupload-toggle-checkbox'); 59 | } 60 | 61 | }; 62 | 63 | }(); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/form-samples.js: -------------------------------------------------------------------------------- 1 | var FormSamples = function () { 2 | 3 | 4 | return { 5 | //main function to initiate the module 6 | init: function () { 7 | 8 | // use select2 dropdown instead of chosen as select2 works fine with bootstrap on responsive layouts. 9 | $('.select2_category').select2({ 10 | placeholder: "Select an option", 11 | allowClear: true 12 | }); 13 | 14 | $('.select2_sample1').select2({ 15 | placeholder: "Select a State", 16 | allowClear: true 17 | }); 18 | 19 | $(".select2_sample2").select2({ 20 | placeholder: "Type to select an option", 21 | allowClear: true, 22 | minimumInputLength: 1, 23 | query: function (query) { 24 | var data = { 25 | results: [] 26 | }, i, j, s; 27 | for (i = 1; i < 5; i++) { 28 | s = ""; 29 | for (j = 0; j < i; j++) { 30 | s = s + query.term; 31 | } 32 | data.results.push({ 33 | id: query.term + i, 34 | text: s 35 | }); 36 | } 37 | query.callback(data); 38 | } 39 | }); 40 | 41 | $(".select2_sample3").select2({ 42 | tags: ["red", "green", "blue", "yellow", "pink"] 43 | }); 44 | 45 | } 46 | 47 | }; 48 | 49 | }(); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/gallery.js: -------------------------------------------------------------------------------- 1 | var Gallery = function () { 2 | 3 | return { 4 | //main function to initiate the module 5 | init: function () { 6 | 7 | App.initFancybox(); 8 | 9 | } 10 | 11 | }; 12 | 13 | }(); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/jquery-1.8.3.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlutoaCharon/Golang_logCollect/7e7d5691887fec997351d5c4b8c2abe74fc8efd1/logBeegoWeb/static/js/jquery-1.8.3.min.js -------------------------------------------------------------------------------- /logBeegoWeb/static/js/jquery.backstretch.min.js: -------------------------------------------------------------------------------- 1 | /*! Backstretch - v2.0.3 - 2012-11-30 2 | * http://srobbin.com/jquery-plugins/backstretch/ 3 | * Copyright (c) 2012 Scott Robbin; Licensed MIT */ 4 | (function(e,t,n){"use strict";e.fn.backstretch=function(r,s){return(r===n||r.length===0)&&e.error("No images were supplied for Backstretch"),e(t).scrollTop()===0&&t.scrollTo(0,0),this.each(function(){var t=e(this),n=t.data("backstretch");n&&(s=e.extend(n.options,s),n.destroy(!0)),n=new i(this,r,s),t.data("backstretch",n)})},e.backstretch=function(t,n){return e("body").backstretch(t,n).data("backstretch")},e.expr[":"].backstretch=function(t){return e(t).data("backstretch")!==n},e.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var r={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxWidth:"none",zIndex:-999999}},i=function(n,i,o){this.options=e.extend({},e.fn.backstretch.defaults,o||{}),this.images=e.isArray(i)?i:[i],e.each(this.images,function(){e("")[0].src=this}),this.isBody=n===document.body,this.$container=e(n),this.$wrap=e('
').css(r.wrap).appendTo(this.$container),this.$root=this.isBody?s?e(t):e(document):this.$container;if(!this.isBody){var u=this.$container.css("position"),a=this.$container.css("zIndex");this.$container.css({position:u==="static"?"relative":u,zIndex:a==="auto"?0:a,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&s?"fixed":"absolute"}),this.index=0,this.show(this.index),e(t).on("resize.backstretch",e.proxy(this.resize,this)).on("orientationchange.backstretch",e.proxy(function(){this.isBody&&t.pageYOffset===0&&(t.scrollTo(0,1),this.resize())},this))};i.prototype={resize:function(){try{var e={left:0,top:0},n=this.isBody?this.$root.width():this.$root.innerWidth(),r=n,i=this.isBody?t.innerHeight?t.innerHeight:this.$root.height():this.$root.innerHeight(),s=r/this.$img.data("ratio"),o;s>=i?(o=(s-i)/2,this.options.centeredY&&(e.top="-"+o+"px")):(s=i,r=s*this.$img.data("ratio"),o=(r-n)/2,this.options.centeredX&&(e.left="-"+o+"px")),this.$wrap.css({width:n,height:i}).find("img:not(.deleteable)").css({width:r,height:s}).css(e)}catch(u){}return this},show:function(t){if(Math.abs(t)>this.images.length-1)return;this.index=t;var n=this,i=n.$wrap.find("img").addClass("deleteable"),s=e.Event("backstretch.show",{relatedTarget:n.$container[0]});return clearInterval(n.interval),n.$img=e("").css(r.img).bind("load",function(t){var r=this.width||e(t.target).width(),o=this.height||e(t.target).height();e(this).data("ratio",r/o),e(this).fadeIn(n.options.speed||n.options.fade,function(){i.remove(),n.paused||n.cycle(),n.$container.trigger(s,n)}),n.resize()}).appendTo(n.$wrap),n.$img.attr("src",n.images[t]),n},next:function(){return this.show(this.index1&&(clearInterval(this.interval),this.interval=setInterval(e.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(n){e(t).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),n||this.$wrap.remove(),this.$container.removeData("backstretch")}};var s=function(){var e=navigator.userAgent,n=navigator.platform,r=e.match(/AppleWebKit\/([0-9]+)/),i=!!r&&r[1],s=e.match(/Fennec\/([0-9]+)/),o=!!s&&s[1],u=e.match(/Opera Mobi\/([0-9]+)/),a=!!u&&u[1],f=e.match(/MSIE ([0-9]+)/),l=!!f&&f[1];return!((n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&i&&i<534||t.operamini&&{}.toString.call(t.operamini)==="[object OperaMini]"||u&&a<7458||e.indexOf("Android")>-1&&i&&i<533||o&&o<6||"palmGetResource"in t&&i&&i<534||e.indexOf("MeeGo")>-1&&e.indexOf("NokiaBrowser/8.5.0")>-1||l&&l<=6)}()})(jQuery,window); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/jquery.bootpag.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | bootpag - jQuery plugin for dynamic pagination 4 | 5 | Copyright (c) 2013 botmonster@7items.com 6 | 7 | Licensed under the MIT license: 8 | http://www.opensource.org/licenses/mit-license.php 9 | 10 | Project home: 11 | http://botmonster.com/jquery-bootpag/ 12 | 13 | Version: 1.0.4 14 | 15 | */ 16 | (function(f,q){f.fn.bootpag=function(p){function k(e,b){var c,d=0==a.maxVisible?1:a.maxVisible,n=1==a.maxVisible?0:1,m=Math.floor((b-1)/d)*d,g=e.find("li");a.page=b=0>b?0:b>a.total?a.total:b;g.removeClass("disabled");c=1>b-1?1:a.leaps&&b-1>=a.maxVisible?Math.floor((b-1)/d)*d:b-1;g.first().toggleClass("disabled",1===b).attr("data-lp",c).find("a").attr("href",h(c));n=1==a.maxVisible?0:1;c=b+1>a.total?a.total:a.leaps&&b+1=a.total)return this;!f.isNumeric(a.maxVisible)&&!a.maxVisible&&(a.maxVisible=a.total);l.data("settings",a);return this.each(function(){var e,b,c=f(this),d=['
    '];a.prev&&d.push('");for(b=1;b<=Math.min(a.total,a.maxVisible);b++)d.push('
  • '+b+"
  • ");a.next&&(b=a.leaps&&a.total>a.maxVisible? 19 | Math.min(a.maxVisible+1,a.total):2,d.push('"));d.push("
");c.find("ul.bootpag").remove();c.append(d.join("")).addClass("pagination");e=c.find("ul.bootpag");c.find("li").click(function(){var a=f(this);a.hasClass("disabled")||k(e,parseInt(a.attr("data-lp"),10))});k(e,a.page)})}})(jQuery,window); -------------------------------------------------------------------------------- /logBeegoWeb/static/js/jquery.cookie.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.3.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2013 Klaus Hartl 6 | * Released under the MIT license 7 | */ 8 | (function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(e){var a=/\+/g;function d(g){return g}function b(g){return decodeURIComponent(g.replace(a," "))}function f(g){if(g.indexOf('"')===0){g=g.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{return c.json?JSON.parse(g):g}catch(h){}}var c=e.cookie=function(p,o,u){if(o!==undefined){u=e.extend({},c.defaults,u);if(typeof u.expires==="number"){var q=u.expires,s=u.expires=new Date();s.setDate(s.getDate()+q)}o=c.json?JSON.stringify(o):String(o);return(document.cookie=[c.raw?p:encodeURIComponent(p),"=",c.raw?o:encodeURIComponent(o),u.expires?"; expires="+u.expires.toUTCString():"",u.path?"; path="+u.path:"",u.domain?"; domain="+u.domain:"",u.secure?"; secure":""].join(""))}var g=c.raw?d:b;var r=document.cookie.split("; ");var v=p?undefined:{};for(var n=0,k=r.length;n