我一直在将 log4j 用于不同类型的项目,并且对 log4j2 有一些经验。所有实现都使用默认的 appender 和布局。目前我需要编写一个以 json 格式写入的应用程序。所以我通过设置一个非常简单的 log4j2 记录器来尝试 log4j2 JSONLayout 布局。
public class JSONLogger {
private static final Logger LOGGER = LogManager.getLogger();
public static void main(String[] args) {
JSONLogger jsonlogger = new JSONLogger() ;
}
public JSONLogger() {
LOGGER.log(Level.FATAL, "hi mum!") ;
int val1 = 10, val2 = 11, val3 = 12;
LOGGER.log(Level.FATAL,"val1={}, val2={}, val3={}", val1, val2, val3);
}
}
Run Code Online (Sandbox Code Playgroud)
jsonLoggerProperties.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">/Users/petervannes/NetBeansProjects/JSONLogger/logfiles</Property>
</Properties>
<Appenders>
<RollingFile name="json_file_appender" fileName="${log-path}/jsonlogger.json"
filePattern="${log-path}/%d{yyyyMMdd}_jsonlogger-%i.json" >
<JSONLayout …Run Code Online (Sandbox Code Playgroud) 我目前正在寻找一种使用 log4j2 从日志实用程序中获得最佳性能的方法。log4j.properties 是
status = error
name = PropertiesConfig
property.log-path = /Users/petervannes/NetBeansProjects/JSONLogger_2/logfiles
appender.console.type = Console
appender.console.name = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.immediateFlush = true
appender.rolling.fileName = ${log-path}/jsonlogger.json
appender.rolling.filePattern = ${log-path}/%d{yyyyMMdd}_jsonlogger-%i.json
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size= 1MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 4
logger.rolling.name = JSONLogger
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile
rootLogger.level = FATAL
rootLogger.appenderRef.stdout.ref = SYSTEM_OUT
Run Code Online (Sandbox Code Playgroud)
写入 100.000 …
我需要构建一个 React / NextJS 应用程序并将其部署到具有特定上下文的 Weblogic J2ee 服务器。我有一些 React 经验,但我的第一步是使用 NextJS。
\n目前构建/验证步骤是:
\n创建一个普通的 NextJS 应用程序
\n添加 anext.config.js和 amodule.export来更改基本路径
module.exports = {\nbasePath: \'/test\'\n}
\n执行npm run dev应用程序可在“http://localhost:3000/test”上执行
在package.json中添加导出脚本"export": "next build && next export"以支持静态导出
添加以下导出以解决问题 21079
\n//https://github.com/vercel/next.js/issues/21079\nmodule.exports = {\n images: {\n loader: "imgix",\n path: "",\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n执行npm run export以创建静态 HTML 导出。已成功导出到out文件夹。\n检查文件夹index.html中的out …
我目前有 Java 单例,它在实例化时读取一些系统属性。在生产环境中,这些系统属性将是静态的,因此一旦 JVM 重新启动,系统属性就不需要更改。
public final class SoaJSONLogger {
private static final String SCHEMA_PROPERTY = "com.reddipped.soa.jsonlogger.schema";
private static final String SCHEMA_STRICT = "com.reddipped.soa.jsonlogger.strict";
private static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
private final com.reddipped.soa.jsonlogger.JSONLogger LOGGER;
private final Pattern fieldValuePattern = Pattern.compile("(\\w+)=(.+)");
private final String schemaName;
private final Boolean strictSchema;
/**
* Logging level
*
* TRACE (least serious) DEBUG INFO WARNING ERROR (most serious)
*
*/
public static enum LEVEL {
ERROR, WARN, INFO, DEBUG, TRACE
};
private static …Run Code Online (Sandbox Code Playgroud) java ×2
log4j2 ×2
asynchronous ×1
javascript ×1
json ×1
junit ×1
logging ×1
next.js ×1
performance ×1
singleton ×1
war ×1