WebLog Expert Lite,它是一款专门用来分析网站日志文件的软件,可以对网站的来访者进行详细分析,包括当前活动会话统计、文件存取统计、搜索使用情况统计、浏览器/操作系统统计、错误统计等。 1、首先下载WebLog Expert Lite和中文语言安装包,地址为:http://www.weblogexpert.com/download.htm 2、打开WebLog Expert Lite 在菜单栏中点击“File-Language”把语言设置成 Chinese Simp 3、点击工具栏第一个图标New,填入你的网站信息后点击下一步,导入你从空间服务器下载下来的日志,点完成; 具体操作参照 WebLog
下面站长给大家介绍如何使用WebLog Expert Lite工具来分析日志。 准备工作 1、首先下载网站所有日志到本地的合并成一个.log文件。 2、下载WebLog Expert 官网下载地址https://www.weblogexpert.com/download.htm 3、安装WebLog Expert 开始分析日志 1、运行 WebLog 8、分析完成后会在刚刚指定的报告存放路径下生成报告 报告路径示例file:///C:/ProgramData/WebLog%20Expert/Report/index.htm 9、在浏览器中打开分析日志
public void webLog() {} @Before("webLog()") public void doBefore(JoinPoint joinPoint) throws webLog = new WebLog(); Object result = joinPoint.proceed(); Signature signature = joinPoint.getSignature ()); webLog.setMethod(request.getMethod()); webLog.setParameter(getParameter(method, joinPoint.getArgs())); webLog.setResult(result); webLog.setStartTime(DateUtil.date(startTime ).toString()); webLog.setSpendTime((int) (endTime - startTime)); webLog.setUri(request.getRequestURI
cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ManagedandExternalTables weblog 表结构: CREATE TABLE IF NOT EXISTS weblog( ip string , time string , req_url string , status string ' into table weblog ; ? image.png 也可以像下面这样建表 create table weblog_1 as select ip,time,req_url from weblog; 启动了MR任务 create table weblog_2 like weblog; ?
public void webLog() { } @Before(value = "webLog()&& @annotation(OperationLog)") public webLog = new WebLog(); Object result = joinPoint.proceed();//返回的结果,这是一个进入方法和退出方法的一个分界 ()); webLog.setMethod(request.getMethod()); webLog.setParameter(getParameter(method, joinPoint.getArgs())); webLog.setResult(JSONUtil.parse(result)); webLog.setSpendTime( (int) (endTime - startTime)); webLog.setStartTime(startTime); webLog.setUri(request.getRequestURI
public void webLog() { } @Before("webLog()") public void doBefore(JoinPoint joinPoint) throws webLog = new WebLog(); Object result = joinPoint.proceed(); Signature signature = joinPoint.getSignature ()); webLog.setMethod(request.getMethod()); webLog.setParameter(getParameter(method, joinPoint.getArgs())); webLog.setResult(result); webLog.setSpendTime((int) (endTime - startTime)); webLog.setStartTime(startTime); webLog.setUri(request.getRequestURI());
public void webLog() { } // 在目标方法调用前调用通知功能 @Before("webLog()") public void doBefore(JoinPoint webLog = new WebLog(); Object result = joinPoint.proceed(); Signature signature = joinPoint.getSignature ()); webLog.setMethod(request.getMethod()); webLog.setParameter(getParameter(method, joinPoint.getArgs())); webLog.setResult(result); webLog.setSpendTime((int) (endTime - startTime)); webLog.setStartTime(startTime); webLog.setUri(request.getRequestURI());
6.1创建原始数据表 --在hive仓库中建贴源数据表 drop table if exists ods_weblog_origin;create table ods_weblog_origin(valid data inpath '/weblog/preprocessed/16-02-24-16/' overwrite into table ods_weblog_origin partition(datestr ) (目标:ods_weblog_detail) drop table ods_weblog_detail;create table ods_weblog_detail(valid /weblog/input /weblog/stayout4--导入hive表("t_display_access_info")中drop table ods_access_info;create ;use dw_weblog;drop table if exists t_orgin_weblog;create table t_orgin_weblog(valid string,remote_addr
/** * Controller层的日志封装类 * Created by macro on 2018/4/26. */ public class WebLog { private String public void webLog() { } @Before("webLog()") public void doBefore(JoinPoint joinPoint) throws webLog = new WebLog(); Object result = joinPoint.proceed(); Signature signature = joinPoint.getSignature ()); logMap.put("description",webLog.getDescription()); LOGGER.info("{}", JSONUtil.parse (webLog)); return result; } } 第四步,运行项目,并对 controller 下的某个控制器进行测试。
webLog = new WebLog(); Object result = null; try { log.info("=========== 对象 webLog.setMethodType(logAnnotation.methodType().name()); webLog.setDescription (logAnnotation.description()); webLog.setTimeCost((int) timeCost); webLog.setStartTime ()); webLog.setParams(getParams(joinPoint)); webLog.setResult(result); webLog.setUri(request.getRequestURI()); webLog.setUrl(request.getRequestURL().toString())
webLog = new WebLog(); Object result = joinPoint.proceed(); Signature signature = joinPoint.getSignature ()); webLog.setIp(request.getRemoteAddr()); webLog.setMethod(request.getMethod()); webLog.setParameter(getParameter(method, joinPoint.getArgs())); webLog.setResult(result); webLog.setSpendTime((int) (endTime - startTime)); webLog.setStartTime(startTime); webLog.setUri "method:", webLog.getMethod()); logMap.put("parameter:", webLog.getParameter()); logMap.put
fclose($fd); } function __destruct(){ echo "this is destruct"; } } class weblog php class weblog { public $weblogfile; function __construct() { $flag="system('cat /flag ("/flflagag"); $a->weblogfile='/flflagag'; print(serialize($a)); 解析:实例化weblog的类,并且赋值给a然后给a->weblogfile 赋值为/flflagag,此处为双写,主要是为了绕过str=str_replace('flag',',$str); 最后序列化出来 :O:6:"weblog":1:{s:10:"weblogfile"; log=O:6:"weblog":1:{s:10:"weblogfile";s:5:"/flflagag";} 将会执行反序列化,反序列化的话,将会检查类中有没有__wakeup的魔术方法,有的话,将会先执行
(`Using video device: ${videoTracks[0].label}`); } if (audioTracks.length > 0) { weblog (`${getName(pc)} setLocalDescription complete`); } function onSetRemoteSuccess(pc) { weblog(` '); } } async function onCreateAnswerSuccess(desc) { weblog(`Answer from pc2:\n${desc.sdp }`); weblog('pc2 setLocalDescription start'); try { await pc2.setLocalDescription(desc) event.candidate.candidate : '(null)'}`); } function onAddIceCandidateSuccess(pc) { weblog(`${
(`Using video device: ${videoTracks[0].label}`); } if (audioTracks.length > 0) { weblog (`${getName(pc)} setLocalDescription complete`); } function onSetRemoteSuccess(pc) { weblog(` '); } } async function onCreateAnswerSuccess(desc) { weblog(`Answer from pc2:\n${desc.sdp }`); weblog('pc2 setLocalDescription start'); try { await pc2.setLocalDescription(desc) event.candidate.candidate : '(null)'}`); } function onAddIceCandidateSuccess(pc) { weblog(`${
script_hadoop]$ hadoop jar web_click_mr_hive.jar com.bie.hive.mr.ClickStreamThree /home/hadoop/data_hadoop/weblog /preprocess/output/2018-05-19 /home/hadoop/data_hadoop/weblog/preprocess/click_pv_out/2018-05-19 2 18 web_click_mr_hive.jar com.bie.hive.mr.ClickStreamThree hdfs://slaver1:9000/home/hadoop/data_hadoop/weblog /preprocess/output/2018-05-19 hdfs://slaver1:9000/home/hadoop/data_hadoop/weblog/preprocess/click_pv_out /output")); //FileOutputFormat.setOutputPath(job, new Path("c:/weblog/pageviews"));
final static Logger logger = LoggerFactory.getLogger(WebLogAspect.class); /** * 以自定义 @WebLog 注解为切点 **/ @Pointcut("@annotation(cn.fighter3.spring.aop_demo.WebLog)") public void webLog( ) {} /** * 在切点之前织入 */ @Before("webLog()") public void doBefore(JoinPoint joinPoint) ======== End ==========================================="); } /** * 环绕 */ @Around("webLog @Before:在切点之前织入,打印了一些入参信息 @Around:环绕切点,打印返回参数和接口执行时间 使用:只需要在接口上加上自定义注解@GetMapping("/hello") @WebLog
创建 原始数据表(clickstreamdata-pre): 对应mr清洗完之后的数据clickstreamdata-pre,而不是原始日志数据 drop table if exists ods_weblog_origin ; create table ods_weblog_origin( valid string, remote_addr string, remote_user string, time_local table ods_click_stream_visit partition(datestr='2021-09-18'); 四、生成统计指标 生成统计数据指标的明细表 drop table ods_weblog_detail ; create table ods_weblog_detail( valid string, --有效标识 remote_addr string, --来源IP group by month,day,hour; 按天统计pvs select count(*) as pvs,a.month as month,a.day as day from ods_weblog_detail
image.png] 我揉了揉眼睛,仔细看了看复制过来的老代码,精简版如下: /** * 在切点之前织入 * @param joinPoint * @throws Throwable */ @Before("webLog ========"); } /** * 环绕 * @param proceedingJoinPoint * @return * @throws Throwable */ @Around("webLog public void webLog() {} /** * 在切点之前织入 * @param joinPoint * @throws Throwable () { LOGGER.info("-------------afterReturning-------------"); } @AfterThrowing("webLog * 环绕 * @param proceedingJoinPoint * @return * @throws Throwable */ @Around("webLog
2)具体实例: 2.1)创建内部表的三种方式: 2.1.1)第一种方式: Create table if not exists default.weblog( Ip string, Time string Size string) Row format delimited fields terminated by ‘\t’; 数据存储: Load data local inpath’/opt/hive/weblog.txt ’ into table default.weblog; 查看数据: Select * from default.weblog; 2.1.2)第二种方式: Create table default.weblog As select ip, time, req_url, from default.weblog; 查看表结构: Desc default.weblog; 2.1.3)第三种方式: Create table if not exists default.weblog_s like default.weblog; Select * from weblog; Desc weblog; 2.2)创建外部表pageview
(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath())); webLog.setIp(request.getRemoteUser ()); webLog.setMethod(request.getMethod()); webLog.setParameter(getParameter(method, joinPoint.getArgs ())); webLog.setResult(result); webLog.setSpendTime((int) (endTime - startTime)); webLog.setStartTime (startTime); webLog.setUri(request.getRequestURI()); webLog.setUrl(request.getRequestURL().toString ()); logger.info("{}", JSONUtil.parse(webLog)); return result; } 创建测试接口 @RestController @RequestMapping